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
25 changes: 14 additions & 11 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') }}
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 @@ -191,7 +194,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 @@ -220,7 +223,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 @@ -287,7 +290,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 @@ -321,7 +324,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 @@ -399,7 +402,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') }}
timeout-minutes: 10
steps:
- name: Checkout
Expand Down Expand Up @@ -427,7 +430,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 @@ -471,7 +474,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') }}
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') }}
timeout-minutes: 45
steps:
- name: Checkout
Expand Down
Loading