Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 9 additions & 2 deletions .github/workflows/apps-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,9 @@ permissions:
contents: read

concurrency:
group: apps-ci-${{ github.event.pull_request.number || github.ref }}
# A label other than ios-ci runs nothing (see RELEVANT below), so it gets
# its own group and never cancels a real run of the same pull request.
group: apps-ci-${{ github.event.pull_request.number || github.ref }}-${{ (github.event.action == 'labeled' && github.event.label.name != 'ios-ci') && 'skip' || 'run' }}
cancel-in-progress: true

env:
Expand All @@ -33,6 +35,8 @@ env:

jobs:
checks:
# RELEVANT: adding a label other than ios-ci reruns nothing.
if: ${{ github.event.action != 'labeled' || github.event.label.name == 'ios-ci' }}
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
Expand Down Expand Up @@ -63,6 +67,7 @@ jobs:
run: python3 -m unittest discover -s apps/ios/scripts -p "test_*.py" -v

android:
if: ${{ github.event.action != 'labeled' || github.event.label.name == 'ios-ci' }}
runs-on: ubuntu-latest
timeout-minutes: 60
defaults:
Expand Down Expand Up @@ -135,7 +140,7 @@ jobs:
script: ./gradlew :app:connectedDemoDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=${{ env.ZZ_ANDROID_READ_TEST }}

ios:
if: ${{ github.event_name == 'workflow_dispatch' || contains(github.event.pull_request.labels.*.name, 'ios-ci') }}
if: ${{ (github.event_name == 'workflow_dispatch' || contains(github.event.pull_request.labels.*.name, 'ios-ci')) && (github.event.action != 'labeled' || github.event.label.name == 'ios-ci') }}
runs-on: macos-26
timeout-minutes: 60
steps:
Expand All @@ -159,6 +164,8 @@ jobs:
run: swift test --package-path apps/ios/Packages/ZZCore
- name: ZZAPI tests (stub transport fixtures)
run: swift test --package-path apps/ios/Packages/ZZAPI
- name: ZZDesign tests (tokens and fonts)
run: swift test --package-path apps/ios/Packages/ZZDesign
- name: App tests and snapshots (Demo)
run: >-
xcodebuild test
Expand Down
8 changes: 5 additions & 3 deletions .github/workflows/apps-e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,9 @@ permissions:
contents: read

concurrency:
group: apps-e2e-${{ github.event.pull_request.number || github.ref }}
# A label other than run-e2e or ios-ci runs nothing, so it gets its own group and
# never cancels a real run of the same pull request.
group: apps-e2e-${{ github.event.pull_request.number || github.ref }}-${{ (github.event.action == 'labeled' && github.event.label.name != 'run-e2e' && github.event.label.name != 'ios-ci') && 'skip' || 'run' }}
cancel-in-progress: true

env:
Expand All @@ -32,7 +34,7 @@ env:

jobs:
android:
if: ${{ github.event_name == 'workflow_dispatch' || contains(github.event.pull_request.labels.*.name, 'run-e2e') }}
if: ${{ (github.event_name == 'workflow_dispatch' || contains(github.event.pull_request.labels.*.name, 'run-e2e')) && (github.event.action != 'labeled' || github.event.label.name == 'run-e2e') }}
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
Expand Down Expand Up @@ -95,7 +97,7 @@ jobs:
if-no-files-found: ignore

ios:
if: ${{ github.event_name == 'workflow_dispatch' || (contains(github.event.pull_request.labels.*.name, 'run-e2e') && contains(github.event.pull_request.labels.*.name, 'ios-ci')) }}
if: ${{ (github.event_name == 'workflow_dispatch' || (contains(github.event.pull_request.labels.*.name, 'run-e2e') && contains(github.event.pull_request.labels.*.name, 'ios-ci'))) && (github.event.action != 'labeled' || github.event.label.name == 'run-e2e' || github.event.label.name == 'ios-ci') }}
runs-on: macos-26
timeout-minutes: 60
steps:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: CI

# Spec lint and the pinned OpenAPI check. App tests wait for
# .github/workflows/apps-ci.yml, which the build adds with the test targets.
# Spec lint and the pinned OpenAPI check. App tests run in
# .github/workflows/apps-ci.yml.
# The job id stays `build`, matching the zzThis required check name.

on:
Expand Down
Loading