chore(GHA): use arm runner#2293
Conversation
Signed-off-by: Frederic Wilhelm <frederic.wilhelm@sap.com>
✅ Deploy Preview for ocm-website canceled.
|
📝 WalkthroughWalkthroughCI workflows were shifted broadly from Changes
Sequence Diagram(s)sequenceDiagram
autonumber
participant Dev as Developer (push/PR)
participant GH as GitHub Actions
participant Discover as discover_modules step
participant Filter as "Filter JSONs Based on Changes"
participant Jobs as Build/Test/Lint Jobs
Dev->>GH: push/PR (files changed)
GH->>Discover: run module discovery (detect CI workflow / .env / module list)
Discover->>GH: outputs (`modules_json`, `lint_modules_json`, `CI_CHANGED`)
GH->>Filter: apply CI_CHANGED / .env / check_only_changed rules
Filter->>Jobs: provide scoped build/test modules and lint modules
Jobs->>GH: execute scoped build/test and lint jobs
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In @.github/workflows/ci.yml:
- Line 305: The workflow uses an ARM runner ("runs-on: ubuntu-24.04-arm") which
breaks CodeQL because CodeQL CLI lacks Linux ARM64 binaries; update the runs-on
value in the CI job that contains "runs-on: ubuntu-24.04-arm" to an x86-64
runner such as "runs-on: ubuntu-24.04" or "runs-on: ubuntu-latest" so CodeQL
analysis can run successfully.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 5730b01e-b764-4a06-8809-dcc92bda07f7
📒 Files selected for processing (1)
.github/workflows/ci.yml
Signed-off-by: Frederic Wilhelm <frederic.wilhelm@sap.com>
There was a problem hiding this comment.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
.github/workflows/pull-request.yaml (1)
20-118:⚠️ Potential issue | 🟠 MajorMigration is incomplete in this workflow.
size-labeler(Line 128) andverify-labels(Line 156) still run onubuntu-latest, so the “switch all CI jobs” objective is not fully met in this file.Suggested patch
size-labeler: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04-arm @@ verify-labels: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04-arm🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.github/workflows/pull-request.yaml around lines 20 - 118, The workflow still runs the jobs named size-labeler and verify-labels on ubuntu-latest; update those job definitions to use the same runner as the other jobs (runs-on: ubuntu-24.04-arm) so the “switch all CI jobs” migration is complete—locate the job blocks for size-labeler and verify-labels in the YAML and replace their runs-on values with ubuntu-24.04-arm, ensuring no other job in this file remains set to ubuntu-latest.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In @.github/workflows/markdown.yml:
- Line 18: The workflow still mixes architectures because the spellcheck job
uses ubuntu-latest; update the spellcheck job (job id "spellcheck") to use
runs-on: ubuntu-24.04-arm to match the other runners, or add a clear comment
explaining why that job must remain on x86 and pin it explicitly (e.g., keep
ubuntu-latest but document the exception). Also apply the same change or
document exceptions for the other occurrences noted (the other jobs referenced
in the review) so the workflow is consistently migrated.
---
Outside diff comments:
In @.github/workflows/pull-request.yaml:
- Around line 20-118: The workflow still runs the jobs named size-labeler and
verify-labels on ubuntu-latest; update those job definitions to use the same
runner as the other jobs (runs-on: ubuntu-24.04-arm) so the “switch all CI jobs”
migration is complete—locate the job blocks for size-labeler and verify-labels
in the YAML and replace their runs-on values with ubuntu-24.04-arm, ensuring no
other job in this file remains set to ubuntu-latest.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 60b4a12b-f8b8-445f-9abc-dab0c7c84567
📒 Files selected for processing (20)
.github/workflows/auto-label-ipcei.yaml.github/workflows/ci.yml.github/workflows/cli-release.yml.github/workflows/cli.yml.github/workflows/controller-release.yml.github/workflows/kubernetes-controller.yml.github/workflows/markdown.yml.github/workflows/publish-helminput-plugin-component.yaml.github/workflows/publish-ocm-component-version.yml.github/workflows/pull-request.yaml.github/workflows/release-branch.yml.github/workflows/release-candidate-version.yml.github/workflows/release-go-submodule.yaml.github/workflows/renovate.yml.github/workflows/reuse_helper_tool.yaml.github/workflows/update-plugin-registry.yaml.github/workflows/website-manual-update-cli-docs.yaml.github/workflows/website-update-cli-docs.yaml.github/workflows/website-update-security-txt.yaml.github/workflows/website-verify-scripts.yml
✅ Files skipped from review due to trivial changes (6)
- .github/workflows/reuse_helper_tool.yaml
- .github/workflows/release-branch.yml
- .github/workflows/website-verify-scripts.yml
- .github/workflows/auto-label-ipcei.yaml
- .github/workflows/ci.yml
- .github/workflows/website-manual-update-cli-docs.yaml
|
do you mind doing an actual change in the modules or forcing a check on everything (i think the CI trigger for pull request events should be changed also if the .github file was changed) so we can see if stuff breaks? |
Signed-off-by: Frederic Wilhelm <frederic.wilhelm@sap.com>
Signed-off-by: Frederic Wilhelm <frederic.wilhelm@sap.com>
Signed-off-by: Frederic Wilhelm <frederic.wilhelm@sap.com>
Signed-off-by: Frederic Wilhelm <frederic.wilhelm@sap.com>
…omponent-model into use-gha-ci-arm
|
@coderabbitai review |
Signed-off-by: Frederic Wilhelm <frederic.wilhelm@sap.com>
There was a problem hiding this comment.
🧹 Nitpick comments (1)
conformance/scenarios/sovereign/Taskfile.yml (1)
23-24: Consider a fallback for unmappeduname -mvalues.The
sedonly mapsx86_64andaarch64. On hosts reporting other values (e.g.armv7l,arm64on some BSD-ish environments,i686), the expression passes the raw string through and produces an invaliddocker buildx --platformvalue likelinux/armv7l. Since CI is moving toubuntu-24.04-arm(which reportsaarch64) this is fine in practice, but a defensive default would make the task more robust for contributors on other machines:♻️ Suggested hardening
PLATFORMS: - sh: 'echo "linux/$(uname -m | sed "s/x86_64/amd64/;s/aarch64/arm64/")"' + sh: | + arch=$(uname -m) + case "$arch" in + x86_64|amd64) echo "linux/amd64" ;; + aarch64|arm64) echo "linux/arm64" ;; + *) echo "linux/amd64" ;; + esac🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@conformance/scenarios/sovereign/Taskfile.yml` around lines 23 - 24, Update the PLATFORMS sh command so unmapped uname -m values get a safe default: expand the mapping in the existing 'echo "linux/$(uname -m | sed ...)"' expression to explicitly translate common variants (x86_64 -> amd64, aarch64|arm64 -> arm64, armv7l -> arm/v7 as appropriate, i686 -> 386) and add a final fallback branch that returns a known good platform (e.g., amd64) for any other value; locate and modify the PLATFORMS entry containing the sh string so the sed or equivalent case/awk logic performs explicit mappings and a default.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In `@conformance/scenarios/sovereign/Taskfile.yml`:
- Around line 23-24: Update the PLATFORMS sh command so unmapped uname -m values
get a safe default: expand the mapping in the existing 'echo "linux/$(uname -m |
sed ...)"' expression to explicitly translate common variants (x86_64 -> amd64,
aarch64|arm64 -> arm64, armv7l -> arm/v7 as appropriate, i686 -> 386) and add a
final fallback branch that returns a known good platform (e.g., amd64) for any
other value; locate and modify the PLATFORMS entry containing the sh string so
the sed or equivalent case/awk logic performs explicit mappings and a default.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 07d13718-7611-45bf-91e4-9999910a665b
📒 Files selected for processing (13)
.github/workflows/ci.yml.github/workflows/conformance.yml.github/workflows/controller-release.yml.github/workflows/kubernetes-controller.yml.github/workflows/markdown.yml.github/workflows/openssf-scorecard.yml.github/workflows/renovate.yml.github/workflows/update-plugin-registry.yaml.github/workflows/website-publish-site.yaml.github/workflows/website-verify-scripts.ymlconformance/scenarios/sovereign/Taskfile.ymlconformance/scenarios/sovereign/USAGE.mdconformance/scenarios/sovereign/components/notes/Dockerfile
✅ Files skipped from review due to trivial changes (6)
- .github/workflows/update-plugin-registry.yaml
- .github/workflows/website-publish-site.yaml
- .github/workflows/openssf-scorecard.yml
- .github/workflows/website-verify-scripts.yml
- conformance/scenarios/sovereign/USAGE.md
- .github/workflows/controller-release.yml
🚧 Files skipped from review as they are similar to previous changes (4)
- .github/workflows/renovate.yml
- .github/workflows/markdown.yml
- .github/workflows/conformance.yml
- .github/workflows/ci.yml
Signed-off-by: Frederic Wilhelm <frederic.wilhelm@sap.com>
Signed-off-by: Frederic Wilhelm <frederic.wilhelm@sap.com>
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
.github/workflows/conformance.yml (1)
107-142:⚠️ Potential issue | 🟠 MajorInstall
skopeoexplicitly onubuntu-24.04-armor guard with setup.Skopeo is preinstalled on ubuntu-24.04 (x64) but NOT on the ubuntu-24.04-arm partner image, despite being available in Ubuntu's universe repository. The unqualified
skopeocalls at lines 116 and 139 will fail on arm64 matrix legs. Additionally, the comment at.github/workflows/kubernetes-controller.ymlline 285 claiming "Skopeo is pre-installed on GitHub-hosted runners" is misleading for arm64.Either add
sudo apt-get update && sudo apt-get install -y skopeobefore first use, or wrap the steps with a conditional that skips arm64 until skopeo is available.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.github/workflows/conformance.yml around lines 107 - 142, The workflow uses skopeo in the "Load CLI image into Docker daemon" and "Prepare controller image for kind" steps (the skopeo --override-arch ... copy commands) but skopeo is not present on the ubuntu-24.04-arm runner; either install it before the first skopeo invocation (add a step that runs sudo apt-get update && sudo apt-get install -y skopeo when matrix.arch == 'arm64' or when runner is ubuntu-24.04-arm) or guard the skopeo-using steps with a conditional (e.g., skip when matrix.arch == 'arm64') so the workflow does not call skopeo on the arm runner; update the comment that currently states "Skopeo is pre-installed on GitHub-hosted runners" to reflect the arm64 exception.
🧹 Nitpick comments (2)
.github/workflows/conformance.yml (1)
67-72: Considerfail-fast: falsefor the arch matrix.With the default (
fail-fast: true), a failure on one architecture cancels the other, hiding whether the issue is arch-specific or shared. Since the whole point of the matrix here is arch parity, opting out helps diagnosis.♻️ Proposed tweak
strategy: + fail-fast: false matrix: arch: [amd64, arm64]Also note:
kubernetes-controller.ymlnow invokes this reusable workflow (jobsconformanceandconformance-published) without an arch input, so each call fans out to 2 runs by design. Worth confirming that's the intended cost/time profile.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.github/workflows/conformance.yml around lines 67 - 72, Add fail-fast: false to the GitHub Actions matrix so a failure on one architecture doesn't cancel the parallel run and hides arch-specific failures: update the workflow's strategy block (the strategy -> matrix where arch: [amd64, arm64]) to include fail-fast: false; also confirm callers (notably the reusable workflow invocations in kubernetes-controller.yml for jobs conformance and conformance-published that omit an arch input) intentionally fan out to both architectures and accept the additional cost/time..github/workflows/kubernetes-controller.yml (1)
221-263: Both linux-amd64 and linux-arm64 tarballs are available. Consider settingfail-fast: falsefor independent arch testing.The OCM releases publish both architecture tarballs (verified for v0.40.0); the workflow will not fail on missing arm64 assets. However, with default
fail-fast: true, if the amd64 leg fails, the arm64 leg cancels before reporting results. Settingfail-fast: falseensures both architectures complete their E2E runs independently, providing clearer insight into arch-specific failures.♻️ Optional: disable fail-fast for this matrix
needs: build + strategy: + fail-fast: false - strategy: matrix: arch: [amd64, arm64]🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.github/workflows/kubernetes-controller.yml around lines 221 - 263, The E2E matrix currently uses the default fail-fast behavior which cancels other arch jobs when one fails; update the workflow's E2E job to explicitly set strategy.fail-fast: false so amd64 and arm64 runs complete independently. Locate the E2E job (job name "E2E" and its strategy.matrix block) and add "fail-fast: false" under the strategy section to prevent early cancellation of the other architecture run.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Outside diff comments:
In @.github/workflows/conformance.yml:
- Around line 107-142: The workflow uses skopeo in the "Load CLI image into
Docker daemon" and "Prepare controller image for kind" steps (the skopeo
--override-arch ... copy commands) but skopeo is not present on the
ubuntu-24.04-arm runner; either install it before the first skopeo invocation
(add a step that runs sudo apt-get update && sudo apt-get install -y skopeo when
matrix.arch == 'arm64' or when runner is ubuntu-24.04-arm) or guard the
skopeo-using steps with a conditional (e.g., skip when matrix.arch == 'arm64')
so the workflow does not call skopeo on the arm runner; update the comment that
currently states "Skopeo is pre-installed on GitHub-hosted runners" to reflect
the arm64 exception.
---
Nitpick comments:
In @.github/workflows/conformance.yml:
- Around line 67-72: Add fail-fast: false to the GitHub Actions matrix so a
failure on one architecture doesn't cancel the parallel run and hides
arch-specific failures: update the workflow's strategy block (the strategy ->
matrix where arch: [amd64, arm64]) to include fail-fast: false; also confirm
callers (notably the reusable workflow invocations in kubernetes-controller.yml
for jobs conformance and conformance-published that omit an arch input)
intentionally fan out to both architectures and accept the additional cost/time.
In @.github/workflows/kubernetes-controller.yml:
- Around line 221-263: The E2E matrix currently uses the default fail-fast
behavior which cancels other arch jobs when one fails; update the workflow's E2E
job to explicitly set strategy.fail-fast: false so amd64 and arm64 runs complete
independently. Locate the E2E job (job name "E2E" and its strategy.matrix block)
and add "fail-fast: false" under the strategy section to prevent early
cancellation of the other architecture run.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: ac16f778-2620-4e7a-9017-b2fa15c8508b
📒 Files selected for processing (2)
.github/workflows/conformance.yml.github/workflows/kubernetes-controller.yml
Signed-off-by: Frederic Wilhelm <frederic.wilhelm@sap.com>
…omponent-model into use-gha-ci-arm
|
@coderabbitai review |
✅ Actions performedReview triggered.
|
There was a problem hiding this comment.
Actionable comments posted: 1
♻️ Duplicate comments (1)
.github/workflows/conformance.yml (1)
108-110:⚠️ Potential issue | 🟠 MajorGroup the conditional
skopeoinstall command.Line 110 has a shell operator precedence issue:
||and&&have equal precedence and are left-associative, so the command is evaluated as(command -v skopeo || sudo apt-get update -qq) && sudo apt-get install -yqq skopeo. When skopeo is found, the first part succeeds, and the&&operator still causesapt-get installto execute. Wrap the apt-get commands in a group to ensure they only run whenskopeois missing.Proposed fix
- run: command -v skopeo || sudo apt-get update -qq && sudo apt-get install -yqq skopeo + run: command -v skopeo >/dev/null 2>&1 || { sudo apt-get update -qq && sudo apt-get install -yqq skopeo; }🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.github/workflows/conformance.yml around lines 108 - 110, The shell command in the "Ensure skopeo is installed" workflow step incorrectly mixes || and && causing apt-get to run even when skopeo exists; change the command to run the apt-get sequence only when `command -v skopeo` fails by grouping the update+install commands (e.g., use a brace or paren group such as `command -v skopeo || { sudo apt-get update -qq && sudo apt-get install -yqq skopeo; }`), ensuring the group is properly terminated so the install runs only on the failure branch.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In @.github/workflows/kubernetes-controller.yml:
- Around line 282-283: The one-liner check for skopeo has an operator precedence
bug: the command 'command -v skopeo || sudo apt-get update -qq && sudo apt-get
install -yqq skopeo' can run apt-get install even when skopeo exists; update the
"Ensure skopeo is installed" step so the apt-get sequence is grouped and only
executed when the check fails, e.g. replace the right-hand sequence with a
grouped block such as '|| { sudo apt-get update -qq && sudo apt-get install -yqq
skopeo; }' (ensure the braces and terminating semicolon are present).
---
Duplicate comments:
In @.github/workflows/conformance.yml:
- Around line 108-110: The shell command in the "Ensure skopeo is installed"
workflow step incorrectly mixes || and && causing apt-get to run even when
skopeo exists; change the command to run the apt-get sequence only when `command
-v skopeo` fails by grouping the update+install commands (e.g., use a brace or
paren group such as `command -v skopeo || { sudo apt-get update -qq && sudo
apt-get install -yqq skopeo; }`), ensuring the group is properly terminated so
the install runs only on the failure branch.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 201527d2-3a53-4873-b8a5-a3b56f63257e
📒 Files selected for processing (2)
.github/workflows/conformance.yml.github/workflows/kubernetes-controller.yml
Signed-off-by: Frederic Wilhelm <frederic.wilhelm@sap.com>
Signed-off-by: Frederic Wilhelm <frederic.wilhelm@sap.com>
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
.github/workflows/kubernetes-controller.yml (1)
11-21:⚠️ Potential issue | 🟠 MajorInclude the installer in this workflow’s path filters.
E2E now checks out and executes
website/static/install.sh, but changes to that script alone won’t trigger this workflow. Add it to bothpush.pathsandpull_request.pathsso installer changes are validated here.🐛 Proposed fix
push: branches: - main - 'releases/v**' paths: - kubernetes/controller/**/* - .github/workflows/kubernetes-controller.yml + - website/static/install.sh - .env pull_request: branches: - main paths: - kubernetes/controller/**/* - .github/workflows/kubernetes-controller.yml + - website/static/install.sh - .envAlso applies to: 244-263
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.github/workflows/kubernetes-controller.yml around lines 11 - 21, The workflow's path filters currently include kubernetes/controller/**/*, .github/workflows/kubernetes-controller.yml, and .env but omit the installer; update both the push.paths and pull_request.paths lists in the kubernetes-controller.yml workflow to add website/static/install.sh so changes to the installer trigger the workflow, and mirror the same addition for the duplicate paths block referenced around the other occurrence (lines corresponding to the second paths block noted in the comment).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Outside diff comments:
In @.github/workflows/kubernetes-controller.yml:
- Around line 11-21: The workflow's path filters currently include
kubernetes/controller/**/*, .github/workflows/kubernetes-controller.yml, and
.env but omit the installer; update both the push.paths and pull_request.paths
lists in the kubernetes-controller.yml workflow to add website/static/install.sh
so changes to the installer trigger the workflow, and mirror the same addition
for the duplicate paths block referenced around the other occurrence (lines
corresponding to the second paths block noted in the comment).
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 50a64c62-08ea-4390-a5d7-a6ef0196e1c1
📒 Files selected for processing (3)
.github/workflows/ci.yml.github/workflows/conformance.yml.github/workflows/kubernetes-controller.yml
✅ Files skipped from review due to trivial changes (1)
- .github/workflows/ci.yml
🚧 Files skipped from review as they are similar to previous changes (1)
- .github/workflows/conformance.yml
This PR migrates GitHub Actions CI/CD workflows from ubuntu-latest (x86_64) to ubuntu-24.04-arm (ARM64) runners for improved performance and cost efficiency. It also: - Adds CI workflow self-change detection to trigger full rebuilds - Introduces multi-architecture matrix testing for conformance and E2E jobs - Makes the Dockerfile and Taskfile architecture-aware --------- Signed-off-by: Frederic Wilhelm <frederic.wilhelm@sap.com> Co-authored-by: Jakob Möller <jakob.moeller@sap.com> 6611b26
This PR migrates GitHub Actions CI/CD workflows from ubuntu-latest (x86_64) to ubuntu-24.04-arm (ARM64) runners for improved performance and cost efficiency. It also: - Adds CI workflow self-change detection to trigger full rebuilds - Introduces multi-architecture matrix testing for conformance and E2E jobs - Makes the Dockerfile and Taskfile architecture-aware --------- Signed-off-by: Frederic Wilhelm <frederic.wilhelm@sap.com> Co-authored-by: Jakob Möller <jakob.moeller@sap.com> 6611b26
…scaffolding setup The sigstore scaffolding's Trillian MySQL image (gcr.io/trillian-opensource-ci/db_server) is amd64-only, which broke after PR open-component-model#2293 switched CI to ARM64 runners. Reverts integration tests to ubuntu-latest (amd64). Also adds `run: once` to scaffolding:setup to prevent go-task from invoking it twice in parallel via the scaffolding:env dependency graph. Signed-off-by: Gerald Morrison (D032990) <gerald.morrison@sap.com>
…scaffolding setup The sigstore scaffolding's Trillian MySQL image (gcr.io/trillian-opensource-ci/db_server) is amd64-only, which broke after PR open-component-model#2293 switched CI to ARM64 runners. Reverts integration tests to ubuntu-latest (amd64). Also adds `run: once` to scaffolding:setup to prevent go-task from invoking it twice in parallel via the scaffolding:env dependency graph. Signed-off-by: Gerald Morrison (D032990) <gerald.morrison@sap.com>
…scaffolding setup The sigstore scaffolding's Trillian MySQL image (gcr.io/trillian-opensource-ci/db_server) is amd64-only, which broke after PR open-component-model#2293 switched CI to ARM64 runners. Reverts integration tests to ubuntu-latest (amd64). Also adds `run: once` to scaffolding:setup to prevent go-task from invoking it twice in parallel via the scaffolding:env dependency graph. Signed-off-by: Gerald Morrison (D032990) <gerald.morrison@sap.com> On-behalf-of: Gerald Morrison (SAP) <gerald.morrison@sap.com>
…scaffolding setup The sigstore scaffolding's Trillian MySQL image (gcr.io/trillian-opensource-ci/db_server) is amd64-only, which broke after PR open-component-model#2293 switched CI to ARM64 runners. Reverts integration tests to ubuntu-latest (amd64). Also adds `run: once` to scaffolding:setup to prevent go-task from invoking it twice in parallel via the scaffolding:env dependency graph. Signed-off-by: Gerald Morrison (SAP) <gerald.morrison@sap.com> On-behalf-of: Gerald Morrison (SAP) <gerald.morrison@sap.com>
This PR migrates GitHub Actions CI/CD workflows from ubuntu-latest (x86_64) to ubuntu-24.04-arm (ARM64) runners for improved performance and cost efficiency. It also: