Route Gitea image contract to trusted runner

This commit is contained in:
2026-07-27 15:04:59 -07:00
parent 82378391c6
commit 69863a0b7f
2 changed files with 19 additions and 2 deletions

View File

@@ -267,9 +267,12 @@ jobs:
retention-days: 30 retention-days: 30
exact-image-contract-gitea: exact-image-contract-gitea:
if: github.server_url != 'https://github.com' if: >-
github.server_url != 'https://github.com' &&
(github.event_name == 'workflow_dispatch' ||
(github.event_name == 'push' && github.ref == 'refs/heads/main'))
needs: prepare needs: prepare
runs-on: ubuntu-latest runs-on: heyoka-image-build
name: Gitea full exact image matrix name: Gitea full exact image matrix
steps: steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0

View File

@@ -383,6 +383,20 @@ class RepositoryTest < Minitest::Test
refute_includes gitea_job, "actions/upload-artifact@" refute_includes gitea_job, "actions/upload-artifact@"
end end
def test_gitea_exact_image_contract_uses_the_trusted_builder_only_for_main_pushes_or_manual_dispatches
workflow = File.read(File.join(ROOT, ".github/workflows/candidate.yml"))
ordinary_jobs = workflow.split(/^ exact-image-contract:\n/, 2).fetch(0)
github_job, gitea_job = workflow.split(/^ exact-image-contract:\n/, 2).fetch(1)
.split(/^ exact-image-contract-gitea:\n/, 2)
assert_equal 4, ordinary_jobs.scan("runs-on: ubuntu-latest").length
assert_includes github_job, "runs-on: ubuntu-latest"
assert_includes gitea_job, "runs-on: heyoka-image-build"
assert_includes gitea_job, "github.server_url != 'https://github.com'"
assert_includes gitea_job, "github.event_name == 'workflow_dispatch'"
assert_includes gitea_job, "github.event_name == 'push' && github.ref == 'refs/heads/main'"
end
def test_gitea_matrix_runner_uses_every_generated_entry_without_hardcoded_coordinates def test_gitea_matrix_runner_uses_every_generated_entry_without_hardcoded_coordinates
runner = File.read(File.join(ROOT, "scripts/run_image_matrix_contract.sh")) runner = File.read(File.join(ROOT, "scripts/run_image_matrix_contract.sh"))