Skip to content
Draft
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
3 changes: 2 additions & 1 deletion .github/actionlint.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# Custom labels also cover organization-configured GitHub-hosted larger runners.
self-hosted-runner:
labels:
- ubuntu-24.04-arm64-8core
- ubuntu-latest-8-cores-v2
- ubuntu-24.04-arm64-8core-v2
2 changes: 1 addition & 1 deletion .github/workflows/agent-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-26, windows-latest]
os: [ubuntu-latest-8-cores-v2, macos-26, windows-latest]
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/agent-desktop-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,7 @@ jobs:
name: Linux AppImage (${{ matrix.variant }})
needs: changes
if: ${{ always() && !cancelled() && ((github.event_name == 'pull_request' && (needs.changes.result != 'success' || needs.changes.outputs.agent != 'false')) || (github.repository == 'MaplePrivacyLabs/Maple' && github.ref == 'refs/heads/master' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch'))) }}
runs-on: ubuntu-latest
runs-on: ubuntu-latest-8-cores-v2
timeout-minutes: 120
strategy:
fail-fast: false
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/android-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
environment: android-signing
needs: changes
if: ${{ always() && !cancelled() && (needs.changes.result != 'success' || needs.changes.outputs.frontend != 'false' || needs.changes.outputs.android != 'false') }}
runs-on: ubuntu-latest-8-cores
runs-on: ubuntu-latest-8-cores-v2
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # was v4
with:
Expand Down Expand Up @@ -102,7 +102,7 @@ jobs:

verify-android-artifacts:
needs: build-android
runs-on: ubuntu-latest-8-cores
runs-on: ubuntu-latest-8-cores-v2
permissions:
contents: read
steps:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/android-pr-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
build-android:
needs: changes
if: ${{ always() && !cancelled() && (needs.changes.result != 'success' || needs.changes.outputs.android != 'false') }}
runs-on: ubuntu-latest
runs-on: ubuntu-latest-8-cores-v2
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # was v4
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/auth-pages-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ on:
jobs:
build:
if: github.event_name == 'workflow_dispatch' && github.ref == 'refs/heads/master'
runs-on: ubuntu-latest
runs-on: ubuntu-latest-8-cores-v2
timeout-minutes: 30
steps:
- name: Checkout auth source
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/auth-pages-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ jobs:
github.event_name == 'pull_request' ||
((github.event_name == 'push' || github.event_name == 'workflow_dispatch') &&
github.ref == 'refs/heads/master')
runs-on: ubuntu-latest
runs-on: ubuntu-latest-8-cores-v2
timeout-minutes: 30
env:
SOURCE_SHA: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/desktop-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ jobs:
environment: desktop-signing
needs: changes
if: ${{ always() && !cancelled() && (needs.changes.result != 'success' || needs.changes.outputs.frontend != 'false' || needs.changes.outputs.linux != 'false') }}
runs-on: ubuntu-latest-8-cores
runs-on: ubuntu-latest-8-cores-v2
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # was v4
with:
Expand Down Expand Up @@ -167,7 +167,7 @@ jobs:
verify-linux-desktop-artifacts:
needs:
- build-linux
runs-on: ubuntu-latest-8-cores
runs-on: ubuntu-latest-8-cores-v2
permissions:
contents: read
steps:
Expand Down Expand Up @@ -341,7 +341,7 @@ jobs:
verify-windows-desktop-artifacts:
needs:
- build-windows
runs-on: ubuntu-latest-8-cores
runs-on: ubuntu-latest-8-cores-v2
permissions:
contents: read
steps:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/desktop-pr-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ jobs:
build-linux:
needs: changes
if: ${{ always() && !cancelled() && (needs.changes.result != 'success' || needs.changes.outputs.linux != 'false') }}
runs-on: ubuntu-latest
runs-on: ubuntu-latest-8-cores-v2
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # was v4
with:
Expand Down Expand Up @@ -222,7 +222,7 @@ jobs:
verify-windows-artifacts:
needs:
- build-windows
runs-on: ubuntu-latest
runs-on: ubuntu-latest-8-cores-v2
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # was v4
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/frontend-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ on:

jobs:
test-frontend:
runs-on: ubuntu-latest
runs-on: ubuntu-latest-8-cores-v2
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # was v4
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/opensecret-eif-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ jobs:
name: Build and attest EIF (${{ inputs.environment }})
# Only the reviewed default branch can produce an approval candidate.
if: github.ref == 'refs/heads/master'
runs-on: ubuntu-24.04-arm64-8core
runs-on: ubuntu-24.04-arm64-8core-v2
timeout-minutes: 180
permissions:
contents: read
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/opensecret-eif.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ jobs:
permissions:
contents: read
id-token: write
runs-on: ubuntu-24.04-arm64-8core
runs-on: ubuntu-24.04-arm64-8core-v2
timeout-minutes: 180
strategy:
fail-fast: false
Expand Down Expand Up @@ -152,7 +152,7 @@ jobs:
permissions:
contents: read
id-token: write
runs-on: ubuntu-24.04-arm64-8core
runs-on: ubuntu-24.04-arm64-8core-v2
timeout-minutes: 180
strategy:
fail-fast: false
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/pages-preview-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ jobs:
github.event_name == 'push' ||
(github.event_name == 'pull_request' &&
github.event.pull_request.head.repo.full_name == github.repository)
runs-on: ubuntu-latest
runs-on: ubuntu-latest-8-cores-v2
timeout-minutes: 30
env:
SOURCE_SHA: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
Expand Down
18 changes: 9 additions & 9 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ jobs:
- platform: macos-26-xlarge
nix_shell: ci
artifact_prefix: macos
- platform: ubuntu-latest-8-cores
- platform: ubuntu-latest-8-cores-v2
nix_shell: desktop-linux
artifact_prefix: linux

Expand Down Expand Up @@ -172,7 +172,7 @@ jobs:
# Ubuntu 24.04 restricts unprivileged user namespaces by default; linuxdeploy/AppImage
# packaging uses bubblewrap and otherwise fails with "bwrap: setting up uid map: Permission denied".
- name: Allow bubblewrap user namespaces
if: matrix.platform == 'ubuntu-latest-8-cores'
if: matrix.platform == 'ubuntu-latest-8-cores-v2'
run: |
set -euo pipefail
if [ -e /proc/sys/kernel/apparmor_restrict_unprivileged_userns ]; then
Expand All @@ -185,8 +185,8 @@ jobs:
- name: Build Tauri desktop app
run: nix develop --no-update-lock-file .#${{ matrix.nix_shell }} -c ./scripts/ci/desktop-release.sh
env:
APPIMAGE_EXTRACT_AND_RUN: ${{ matrix.platform == 'ubuntu-latest-8-cores' && '1' || '' }}
NO_STRIP: ${{ matrix.platform == 'ubuntu-latest-8-cores' && 'true' || '' }}
APPIMAGE_EXTRACT_AND_RUN: ${{ matrix.platform == 'ubuntu-latest-8-cores-v2' && '1' || '' }}
NO_STRIP: ${{ matrix.platform == 'ubuntu-latest-8-cores-v2' && 'true' || '' }}
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}
APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }}
Expand Down Expand Up @@ -382,7 +382,7 @@ jobs:
build-android:
environment: android-signing
needs: classify-app-release
runs-on: ubuntu-latest-8-cores
runs-on: ubuntu-latest-8-cores-v2
permissions:
contents: write
id-token: write
Expand Down Expand Up @@ -570,7 +570,7 @@ jobs:

build-web:
needs: classify-app-release
runs-on: ubuntu-latest-8-cores
runs-on: ubuntu-latest-8-cores-v2
permissions:
contents: write
id-token: write
Expand Down Expand Up @@ -764,7 +764,7 @@ jobs:
needs:
- classify-app-release
- build-android
runs-on: ubuntu-latest-8-cores
runs-on: ubuntu-latest-8-cores-v2
permissions:
contents: read
steps:
Expand Down Expand Up @@ -795,7 +795,7 @@ jobs:
needs:
- classify-app-release
- build-tauri
runs-on: ubuntu-latest-8-cores
runs-on: ubuntu-latest-8-cores-v2
permissions:
contents: read
steps:
Expand Down Expand Up @@ -856,7 +856,7 @@ jobs:
needs:
- classify-app-release
- build-windows
runs-on: ubuntu-latest-8-cores
runs-on: ubuntu-latest-8-cores-v2
permissions:
contents: read
steps:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/rust-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ on:

jobs:
rust-tests:
runs-on: ubuntu-latest
runs-on: ubuntu-latest-8-cores-v2
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # was v4
with:
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/web-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ on:
jobs:
build-web:
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
runs-on: ubuntu-latest-8-cores-v2
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # was v4
with:
Expand Down Expand Up @@ -66,7 +66,7 @@ jobs:

build-web-master:
if: github.event_name == 'push'
runs-on: ubuntu-latest
runs-on: ubuntu-latest-8-cores-v2
permissions:
contents: read
id-token: write
Expand Down Expand Up @@ -116,7 +116,7 @@ jobs:
verify-web-master-artifact:
if: github.event_name == 'push'
needs: build-web-master
runs-on: ubuntu-latest
runs-on: ubuntu-latest-8-cores-v2
permissions:
contents: read
steps:
Expand Down
8 changes: 4 additions & 4 deletions scripts/ci/test_opensecret_workflows.py
Original file line number Diff line number Diff line change
Expand Up @@ -89,9 +89,9 @@ def test_jobs_are_hosted_with_read_only_contents_and_scoped_oidc(self):
expected_runner = "ubuntu-latest"
if name == "opensecret-eif.yml":
expected_runner = {
"eif-candidate": "ubuntu-24.04-arm64-8core",
"eif-candidate": "ubuntu-24.04-arm64-8core-v2",
"eif": "ubuntu-24.04-arm",
"eif-trusted": "ubuntu-24.04-arm64-8core",
"eif-trusted": "ubuntu-24.04-arm64-8core-v2",
}[job_name]
elif (name, job_name) == ("opensecret-ci.yml", "helpers"):
expected_runner = "ubuntu-24.04-arm"
Expand All @@ -114,7 +114,7 @@ def test_custom_hosted_runner_is_registered_for_workflow_lint(self):
check=True, capture_output=True, text=True,
)
self.assertEqual(json.loads(result.stdout), {
"self-hosted-runner": {"labels": ["ubuntu-24.04-arm64-8core"]},
"self-hosted-runner": {"labels": ["ubuntu-latest-8-cores-v2", "ubuntu-24.04-arm64-8core-v2"]},
})

def test_ordinary_backend_ci_does_not_publish_or_build_eifs(self):
Expand Down Expand Up @@ -416,7 +416,7 @@ def test_release_is_manual_and_never_creates_a_release_or_tag(self):
def test_build_job_is_the_trusted_read_only_builder(self):
job = workflow(self.NAME)["jobs"]["build"]
self.assertEqual(job["if"], "github.ref == 'refs/heads/master'")
self.assertEqual(job["runs-on"], "ubuntu-24.04-arm64-8core")
self.assertEqual(job["runs-on"], "ubuntu-24.04-arm64-8core-v2")
self.assertEqual(job["timeout-minutes"], 180)
self.assertEqual(job["permissions"], {"contents": "read", "id-token": "write", "attestations": "write"})
self.assertNotIn("environment", job)
Expand Down
4 changes: 2 additions & 2 deletions services/opensecret/docs/nitro-deploy.md
Original file line number Diff line number Diff line change
Expand Up @@ -109,10 +109,10 @@ reports an EIF input or approval JSON edit, as routed to the respective job.
This intentionally trusts same-repository PR code to write the
FlakeHub cache; it does not grant signing or deployment authority.
Trusted jobs use the organization-configured GitHub-hosted runner
`ubuntu-24.04-arm64-8core` (Ubuntu 24.04 ARM64, 8 CPU, 32 GB RAM) and allow
`ubuntu-24.04-arm64-8core-v2` (Ubuntu 24.04 ARM64, 8 CPU, 32 GB RAM) and allow
180 minutes for cold kernel builds. Its runner group must allow the public
Maple repository, with capacity for both dev/prod jobs. The existing
`ubuntu-latest-8-cores` runner is x86-64, not a substitute. Unprivileged jobs
`ubuntu-latest-8-cores-v2` runner is x86-64, not a substitute. Unprivileged jobs
retain the standard `ubuntu-24.04-arm` runner and their 90-minute limit.

The trusted job also explicitly enables the GitHub cache and `diff-store: true`,
Expand Down
Loading