-
Notifications
You must be signed in to change notification settings - Fork 10
ci: test on different architectures #114
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
james-garner-canonical
merged 51 commits into
canonical:main
from
james-garner-canonical:25-10+ci+test-on-different-architectures
Feb 17, 2026
Merged
Changes from 9 commits
Commits
Show all changes
51 commits
Select commit
Hold shift + click to select a range
b1a6b82
ci: test on different architectures
james-garner-canonical 5ae71ca
ci: always use go-version-file, since custom runner doesn't have go
james-garner-canonical 6fdf5cc
ci: build on default github runners for target architecture
james-garner-canonical fa588df
ci: bump workflow versions per main
james-garner-canonical 4be7360
chore: merge main
james-garner-canonical bc9adc0
ci: explicitly install go for architecture due to known issue
james-garner-canonical ef4b938
ci: move uninstalling ubuntu-latest packages to runner specific step
james-garner-canonical ba8f1b0
ci: use runner.environment for conditional step
james-garner-canonical 07cf9e6
ci: patch spread.yaml to avoid current failure on self-hosted runner
james-garner-canonical fc2f86d
test: update spread tests that use k8s incidentally to use lxd instead
james-garner-canonical e6ea7c0
test: update test conditions to match changes
james-garner-canonical 38259ca
test: don't expect rockcraft with machine profile
james-garner-canonical 62548b3
test: drop line that should have been removed
james-garner-canonical ca78a3b
style: whitespace
james-garner-canonical 5d2f3f9
ci: skip tests that are expected to fail on new architectures
james-garner-canonical 0a5ea13
chore: merge main
james-garner-canonical 925e6a5
ci: construct spread matrix on ubuntu-latest instead of self-hosted r…
james-garner-canonical 3e2f78e
ci: use jq index for arrays
james-garner-canonical 2819b6f
ci: use jq --compact-output
james-garner-canonical e34944b
chore: merge main
james-garner-canonical d95a3bf
test: install microk8s from edge for alternative architecture support
james-garner-canonical 79041d5
Revert "test: install microk8s from edge for alternative architecture…
james-garner-canonical 1ae91d3
ci: skip juju-extra-bootstrap-args as well, as it tests microk8s args
james-garner-canonical ff9f582
ci: flip arch and runner args for better readability
james-garner-canonical c8442cb
ci: separate self-hosted runners matrix from regular CI
james-garner-canonical fc078d3
chore: merge main
james-garner-canonical f0c1ced
ci: add a job to check if amd64 tests passed as our required check
james-garner-canonical db6c290
ci: try nicer formatting for json
james-garner-canonical b0385e7
ci: include reason for skipping tests
james-garner-canonical 89779c1
ci: consistently order arch then runner
james-garner-canonical 68ca68a
chore: merge main
james-garner-canonical 646dd48
ci: disable preset-lxd-init-no-bootstrap on alternative architectures
james-garner-canonical 134c125
Merge branch 'main' into 25-10+ci+test-on-different-architectures
james-garner-canonical 0f9fa45
refactor: replace snapcore/snapd dependency with minimal local snapd …
Copilot 68bd79c
Updated security@ubuntu.com PGP key (#145)
lucistanescu def73ee
docs: Add CONTRIBUTING.md, moving some content from README.md (#146)
tonyandrewmeyer d67e18e
ci: leave existing push CI as-is, and run on arches via dispatch
james-garner-canonical a8c9290
test: run dispatchable workflow from push to test in this PR
james-garner-canonical ac69036
chore: merge main
james-garner-canonical b3977a5
ci: DRY push.yaml by calling _test-on-arch.yaml
james-garner-canonical 1c3968e
ci: only test on alternative architectures in dispatchable job
james-garner-canonical cea17ae
ci: shorter name for tests workflow
james-garner-canonical 8536ce3
ci: don't use a matrix
james-garner-canonical 7d5455a
chore: merge main (bringing in new format job to push.yaml)
james-garner-canonical b31d6cb
ci: drop uninstall docker step as that's gone from main now
james-garner-canonical 2a82931
ci: revert changes to overrides-env and add it to the skip list
james-garner-canonical 3359620
ci: add a comment to explain why we run alternative arches manually
james-garner-canonical 5e76802
ci: add tests-passed job to collect matrix tests
james-garner-canonical c715327
ci: drop matrix test collection job as we're using hard-coded names now
james-garner-canonical 35fc234
Update .github/workflows/push.yaml
tonyandrewmeyer d05730e
Update .github/workflows/test-on-alternative-arches.yaml
tonyandrewmeyer File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,115 @@ | ||
| name: Tests | ||
|
|
||
| on: | ||
| workflow_call: | ||
| inputs: | ||
| runner: | ||
| required: true | ||
| type: string | ||
| arch: | ||
| required: true | ||
| type: string | ||
|
|
||
| jobs: | ||
| binaries: | ||
| name: Build concierge | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - name: Check out the code | ||
| uses: actions/checkout@v5 | ||
| with: | ||
| fetch-depth: 0 | ||
|
|
||
| - name: Setup Go | ||
| uses: actions/setup-go@v6 | ||
| with: | ||
| go-version-file: "go.mod" | ||
|
|
||
| - name: Run tests | ||
| run: | | ||
| go test -v -race ./... | ||
|
|
||
| - name: Setup goreleaser | ||
| run: | | ||
| sudo snap install --classic goreleaser | ||
|
|
||
| - name: Build concierge | ||
| id: build | ||
| run: | | ||
| goreleaser build --clean --snapshot --single-target --output . | ||
| env: | ||
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
| GOOS: linux | ||
| GOARCH: ${{ inputs.arch }} | ||
|
|
||
| - name: Upload binary artifact | ||
| uses: actions/upload-artifact@v5 | ||
| with: | ||
| name: binary-${{ inputs.runner }} | ||
| path: ./concierge | ||
|
|
||
| define-matrix: | ||
| name: Define spread matrix | ||
| runs-on: ${{ inputs.runner }} | ||
| outputs: | ||
| suites: ${{ steps.suites.outputs.suites }} | ||
| steps: | ||
| - name: Checkout | ||
| uses: actions/checkout@v5 | ||
|
|
||
| - name: Setup Go | ||
| uses: actions/setup-go@v6 | ||
| with: | ||
| go-version-file: "go.mod" | ||
| architecture: ${{ inputs.arch }} | ||
|
|
||
| - name: Install | ||
| run: | | ||
| go install github.com/snapcore/spread/cmd/spread@latest | ||
|
|
||
| - name: Generate matrix list | ||
| id: suites | ||
| run: | | ||
| list="$(spread -list github-ci | sed "s|github-ci:ubuntu-24.04:tests/||g" | jq -r -ncR '[inputs | select(length>0)]')" | ||
| echo "suites=$list" | ||
| echo "suites=$list" >> $GITHUB_OUTPUT | ||
|
|
||
| spread-test: | ||
| name: Spread (${{ matrix.suite }}) | ||
| runs-on: ${{ inputs.runner }} | ||
| needs: | ||
| - binaries | ||
| - define-matrix | ||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| suite: ${{ fromJSON(needs.define-matrix.outputs.suites) }} | ||
| steps: | ||
| - name: Checkout | ||
| uses: actions/checkout@v5 | ||
|
|
||
| - name: Download binary artifact | ||
| uses: actions/download-artifact@v6 | ||
| with: | ||
| name: binary-${{ inputs.runner }} | ||
|
|
||
| - name: Setup Go | ||
| uses: actions/setup-go@v6 | ||
| with: | ||
| go-version-file: "go.mod" | ||
| architecture: ${{ inputs.arch }} | ||
|
|
||
| - name: Install | ||
| run: | | ||
| go install github.com/snapcore/spread/cmd/spread@latest | ||
|
|
||
| - name: Uninstall docker and containerd | ||
| if: ${{ runner.environment == 'github-hosted' }} | ||
| run: | | ||
| sudo apt-get remove -y docker-ce docker-ce-cli containerd.io | ||
| sudo rm -rf /run/containerd | ||
|
|
||
| - name: Run integration tests | ||
| run: | | ||
| spread -v "github-ci:ubuntu-24.04:tests/${{ matrix.suite }}" | ||
|
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oddly the
if systemctl is-enabled unattended-upgrades.serviceconditional does not guard from failure when stopping the service on the self-hosted runners.