Skip to content

Commit 55aa4c7

Browse files
Add the Step icon, CI, Dependabot and CODEOWNERS
Repo hygiene the six Steps need before they are published, none of which existed yet. - assets/icon.svg, synced into every steps/<id>/assets/ by build.sh so the six copies cannot drift. Built from web's logo-head.svg on an opaque white background at 256x256, matching the shape first-party icons use (xcode-test's content is full-bleed 256x252). White rather than TestingBot blue because the mark's visor is already that blue and loses its edge against it. One icon for all six, the way BrowserStack and LambdaTest brand theirs. Checked legible at 32px and 64px, the sizes the step picker and integrations page actually render. The icon goes to the StepLib in a SEPARATE pull request per Step, after that Step's own PR is merged. Without it the integrations page shows a placeholder next to competitors' branded entries. - .github/workflows/ci.yml runs audit-all.sh and, as a separate matrixed job, `bitrise run check` per Step -- the linter StepLib CI runs on a submission. On macOS so the suite meets bash 3.2; ubuntu ships bash 5 and would not catch a bashism. Everything is offline: no credentials, no device minutes. - Dependabot covers the Actions in that workflow. It cannot see `cli_version`, which is a bare version string inside each step.yml rather than a package manifest, so renovate.json carries a regex manager for it. That pin is what keeps a published Step reproducible, so it has to move deliberately. Renovate is inert until the GitHub App is installed on the org. - CODEOWNERS names @jochen-testingbot, read off the commit author rather than guessed: an entry naming a team that does not exist, or a user without write access, is silently ignored and assigns nobody. A team is the better answer once one exists. I could not check the org's teams -- SAML blocks the token.
1 parent 6c4668c commit 55aa4c7

13 files changed

Lines changed: 199 additions & 1 deletion

File tree

‎.github/CODEOWNERS‎

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Every Step here is mirrored to its own public repository and published to the
2+
# Bitrise StepLib. Verified Steps carry a maintainer SLA -- first response
3+
# within 5 business days -- so reviews must not sit unassigned.
4+
#
5+
# A CODEOWNERS entry naming a team that does not exist, or a user without write
6+
# access, is silently ignored: GitHub assigns nobody and no warning reaches the
7+
# pull request. Prefer a team here once one exists (@testingbot/<team>), since a
8+
# single username stops working the day that person is away.
9+
#
10+
# Note that user-facing issues land on the six mirrors rather than on this
11+
# monorepo, so each mirror wants its own copy of this file.
12+
13+
* @jochen-testingbot

‎.github/dependabot.yml‎

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
version: 2
2+
3+
updates:
4+
# The Steps themselves have no package manifest -- they are bash, and the one
5+
# dependency they pin (`cli_version`, the @testingbot/cli release) lives inside
6+
# each step.yml, which Dependabot cannot parse. That pin is handled by the
7+
# regex manager in renovate.json instead.
8+
- package-ecosystem: github-actions
9+
directory: /
10+
schedule:
11+
interval: monthly
12+
commit-message:
13+
prefix: "ci"
14+
labels:
15+
- dependencies

‎.github/workflows/ci.yml‎

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
name: CI
2+
3+
# Everything here runs offline: the Steps are exercised against tests/mock_api.py
4+
# and tests/stubs/, so no TestingBot credentials are needed and no device minutes
5+
# are spent. The live checks live in scripts/e2e.sh and are run by hand.
6+
on:
7+
push:
8+
branches: [main]
9+
pull_request:
10+
workflow_dispatch:
11+
12+
permissions:
13+
contents: read
14+
15+
jobs:
16+
audit:
17+
name: Audit and offline tests
18+
# macOS so the suite runs against bash 3.2, the oldest shell the Steps have
19+
# to work on. Ubuntu ships bash 5 and would not catch a bashism.
20+
runs-on: macos-latest
21+
steps:
22+
- uses: actions/checkout@v4
23+
24+
- name: Install the Bitrise CLI
25+
run: |
26+
brew install bitrise
27+
bitrise setup
28+
29+
- name: Install linters
30+
run: brew install shellcheck yamllint
31+
32+
- name: Audit
33+
# Sync check, shellcheck, yamllint against Bitrise's own config,
34+
# stepman audit and bitrise validate per Step, then the offline suite.
35+
run: ./scripts/audit-all.sh
36+
37+
check:
38+
name: StepLib linter
39+
runs-on: macos-latest
40+
strategy:
41+
fail-fast: false
42+
matrix:
43+
step:
44+
- testingbot-upload-app
45+
- testingbot-espresso
46+
- testingbot-xcuitest
47+
- testingbot-maestro
48+
- testingbot-tunnel
49+
- testingbot-tunnel-stop
50+
steps:
51+
- uses: actions/checkout@v4
52+
53+
- name: Install the Bitrise CLI
54+
run: |
55+
brew install bitrise
56+
bitrise setup
57+
58+
- name: bitrise run check
59+
# The linter StepLib CI runs on a submission: yamllint, step.yml against
60+
# the official JSON schema, and step.yml against the README. Slow (it
61+
# clones a repo per Step), which is why it is a separate job.
62+
working-directory: steps/${{ matrix.step }}
63+
run: bitrise run check

‎README.md‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ it references.
3535
steps/<id>/ one Step: step.yml, step.sh, bitrise.yml, README.md, docs/
3636
lib/testingbot.bash shared bash helpers, inlined into each step.sh
3737
shared/ files copied verbatim into every Step (docs/contributing.md)
38+
assets/icon.svg the Step icon, synced into every steps/<id>/assets/
3839
scripts/build.sh sync shared sources into each Step
3940
scripts/gen-readme.sh regenerate READMEs with Bitrise's steps-readme-generator
4041
scripts/publish.sh mirror one Step to its own repo, tag it, print share commands
@@ -45,7 +46,7 @@ tests/ offline test suite, runs the Steps against mocks
4546
Generated, so never edit by hand:
4647

4748
- the inlined library between the markers in each `step.sh` — `scripts/build.sh`
48-
- each Step's `LICENSE`, `.gitignore` and `docs/contributing.md` — `scripts/build.sh`
49+
- each Step's `LICENSE`, `.gitignore`, `docs/contributing.md` and `assets/icon.svg` — `scripts/build.sh`
4950
- each Step's `README.md` — `scripts/gen-readme.sh`, which runs Bitrise's own
5051
`steps-readme-generator` from `step.yml` + `docs/examples.md` +
5152
`docs/contributing.md`

‎assets/icon.svg‎

Lines changed: 10 additions & 0 deletions
Loading

0 commit comments

Comments
 (0)