Skip to content
Closed
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
27 changes: 15 additions & 12 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,16 @@ concurrency:
group: ci-${{ github.event.pull_request.number || github.sha }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}

# Blacksmith runners only exist under the pingdotgg org. Every job picks its
# runner with `case(github.repository_owner == 'pingdotgg', <blacksmith>, <github-hosted>)`
# so forks run the same CI on GitHub-hosted runners. New jobs should do the same.
jobs:
# Lint, typecheck, and the desktop build each get a runner so they run side by
# side instead of one after another. The `Check` job at the end of this file
# passes only when every other job does.
lint:
name: Lint
runs-on: blacksmith-8vcpu-ubuntu-2404
runs-on: ${{ case(github.repository_owner == 'pingdotgg', 'blacksmith-8vcpu-ubuntu-2404', 'ubuntu-24.04') }}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

GitHub Actions does not have a case() function. Use the ternary pattern: ${{ github.repository_owner == 'pingdotgg' && 'blacksmith-8vcpu-ubuntu-2404' || 'ubuntu-24.04' }}. This applies to every runs-on line changed in this file (lines 25, 63, 89, 143, 207, 236, 305, 318, 352, 430, 458, 503).

timeout-minutes: 10
steps:
- name: Checkout
Expand Down Expand Up @@ -57,7 +60,7 @@ jobs:

typecheck:
name: Typecheck
runs-on: blacksmith-8vcpu-ubuntu-2404
runs-on: ${{ case(github.repository_owner == 'pingdotgg', 'blacksmith-8vcpu-ubuntu-2404', 'ubuntu-24.04') }}
timeout-minutes: 10
steps:
- name: Checkout
Expand All @@ -83,7 +86,7 @@ jobs:

build:
name: Build
runs-on: blacksmith-8vcpu-ubuntu-2404
runs-on: ${{ case(github.repository_owner == 'pingdotgg', 'blacksmith-8vcpu-ubuntu-2404', 'ubuntu-24.04') }}
timeout-minutes: 10
steps:
- name: Checkout
Expand Down Expand Up @@ -137,7 +140,7 @@ jobs:
# per runner is unchanged.
test:
name: Test
runs-on: blacksmith-8vcpu-ubuntu-2404
runs-on: ${{ case(github.repository_owner == 'pingdotgg', 'blacksmith-8vcpu-ubuntu-2404', 'ubuntu-24.04') }}
timeout-minutes: 10
steps:
- name: Checkout
Expand Down Expand Up @@ -201,7 +204,7 @@ jobs:
# started last and ran alone for about 40s after everything else finished.
test_web:
name: Test Web
runs-on: blacksmith-8vcpu-ubuntu-2404
runs-on: ${{ case(github.repository_owner == 'pingdotgg', 'blacksmith-8vcpu-ubuntu-2404', 'ubuntu-24.04') }}
timeout-minutes: 10
steps:
- name: Checkout
Expand Down Expand Up @@ -230,7 +233,7 @@ jobs:
# split files by recorded duration (apps/server/src/testUtils/weightedShardSequencer.ts).
test_server:
name: Test Server ${{ matrix.shard }}
runs-on: blacksmith-4vcpu-ubuntu-2404
runs-on: ${{ case(github.repository_owner == 'pingdotgg', 'blacksmith-4vcpu-ubuntu-2404', 'ubuntu-24.04') }}
timeout-minutes: 10
strategy:
fail-fast: false
Expand Down Expand Up @@ -299,7 +302,7 @@ jobs:
# On Blacksmith like every other job here: the GitHub-hosted queue is shared
# with the PR bots and can leave this job waiting until it is abandoned,
# which fails `Check` on an otherwise green run.
runs-on: blacksmith-2vcpu-ubuntu-2404
runs-on: ${{ case(github.repository_owner == 'pingdotgg', 'blacksmith-2vcpu-ubuntu-2404', 'ubuntu-24.04') }}
timeout-minutes: 5
steps:
- name: Require transfer measurements
Expand All @@ -312,7 +315,7 @@ jobs:
# for checks that take under 3s, on the critical path of every PR.
rust:
name: Rust
runs-on: blacksmith-4vcpu-ubuntu-2404
runs-on: ${{ case(github.repository_owner == 'pingdotgg', 'blacksmith-4vcpu-ubuntu-2404', 'ubuntu-24.04') }}
timeout-minutes: 10
steps:
- name: Checkout
Expand Down Expand Up @@ -346,7 +349,7 @@ jobs:
# the diff cannot be resolved, the lint runs.
mobile_native_changes:
name: Mobile Native Changes
runs-on: blacksmith-2vcpu-ubuntu-2404
runs-on: ${{ case(github.repository_owner == 'pingdotgg', 'blacksmith-2vcpu-ubuntu-2404', 'ubuntu-24.04') }}
timeout-minutes: 5
permissions:
contents: read
Expand Down Expand Up @@ -424,7 +427,7 @@ jobs:
# Skip only on an explicit "no": a gate job that failed or errored leaves the
# output empty, and that must run the lint rather than silently skip it.
if: ${{ !cancelled() && needs.mobile_native_changes.outputs.changed != 'false' }}
runs-on: blacksmith-6vcpu-macos-26
runs-on: ${{ case(github.repository_owner == 'pingdotgg', 'blacksmith-6vcpu-macos-26', 'macos-26') }}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

macos-26 is not a valid GitHub-hosted runner label. Current macOS runners are macos-latest, macos-14, macos-13, macos-12. Use macos-14 (or macos-latest) as the fallback.

timeout-minutes: 10
steps:
- name: Checkout
Expand Down Expand Up @@ -452,7 +455,7 @@ jobs:

release_smoke:
name: Release Smoke
runs-on: blacksmith-8vcpu-ubuntu-2404
runs-on: ${{ case(github.repository_owner == 'pingdotgg', 'blacksmith-8vcpu-ubuntu-2404', 'ubuntu-24.04') }}
timeout-minutes: 10
steps:
- name: Checkout
Expand Down Expand Up @@ -497,7 +500,7 @@ jobs:
mobile_native_static_analysis,
release_smoke,
]
runs-on: blacksmith-2vcpu-ubuntu-2404
runs-on: ${{ case(github.repository_owner == 'pingdotgg', 'blacksmith-2vcpu-ubuntu-2404', 'ubuntu-24.04') }}
timeout-minutes: 5
steps:
- name: Require every job to pass
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/mobile-fingerprint-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ concurrency:
jobs:
fingerprint:
name: Native fingerprint diff
runs-on: blacksmith-8vcpu-ubuntu-2404
runs-on: ${{ case(github.repository_owner == 'pingdotgg', 'blacksmith-8vcpu-ubuntu-2404', 'ubuntu-24.04') }}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same case() function error. Replace with ternary pattern: ${{ github.repository_owner == 'pingdotgg' && 'blacksmith-8vcpu-ubuntu-2404' || 'ubuntu-24.04' }}.

permissions:
contents: read
issues: write
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/windows-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ permissions:
jobs:
test:
name: Test (${{ inputs.package || 'all non-server' }})
runs-on: blacksmith-8vcpu-windows-2025
runs-on: ${{ case(github.repository_owner == 'pingdotgg', 'blacksmith-8vcpu-windows-2025', 'windows-2025') }}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Two issues: (1) case() function does not exist; use ternary pattern. (2) windows-2025 is not a current GitHub-hosted runner label. Available Windows runners are windows-latest, windows-2022, windows-2019. Use windows-2022 as the fallback.

timeout-minutes: 45
steps:
- name: Checkout
Expand Down
Loading