Add missing release matcher key #5333
This file contains 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
name: Build and test images | |
on: | |
push: | |
branches: | |
- master | |
paths: | |
- '**' | |
concurrency: | |
group: ci-image-${{ github.head_ref || github.ref }}-${{ github.repository }} | |
cancel-in-progress: true | |
env: | |
FORCE_COLOR: 1 | |
jobs: | |
get-core-matrix: | |
runs-on: ubuntu-latest | |
outputs: | |
matrix: ${{ steps.set-matrix.outputs.matrix }} | |
steps: | |
- uses: actions/checkout@v4 | |
- run: | | |
git fetch --prune --unshallow | |
sudo apt update && sudo apt install -y jq | |
- id: set-matrix | |
run: | | |
content=`cat .github/flavors.json | jq 'map(select(.variant == "core" and .arch == "amd64"))'` | |
# the following lines are only required for multi line json | |
# the following lines are only required for multi line json | |
content="${content//'%'/'%25'}" | |
content="${content//$'\n'/'%0A'}" | |
content="${content//$'\r'/'%0D'}" | |
# end of optional handling for multi line json | |
# end of optional handling for multi line json | |
echo "::set-output name=matrix::{\"include\": $content }" | |
core: | |
uses: ./.github/workflows/reusable-build-flavor.yaml | |
secrets: inherit | |
with: | |
flavor: ${{ matrix.flavor }} | |
flavor_release: ${{ matrix.flavorRelease }} | |
family: ${{ matrix.family }} | |
base_image: ${{ matrix.baseImage }} | |
model: ${{ matrix.model }} | |
variant: ${{ matrix.variant }} | |
arch: ${{ matrix.arch }} | |
needs: | |
- get-core-matrix | |
strategy: | |
fail-fast: false | |
matrix: ${{fromJson(needs.get-core-matrix.outputs.matrix)}} | |
install: | |
uses: ./.github/workflows/reusable-install-test.yaml | |
with: | |
flavor: ${{ matrix.flavor }} | |
flavor_release: ${{ matrix.flavorRelease }} | |
needs: | |
- core | |
strategy: | |
fail-fast: true | |
matrix: | |
include: | |
- flavor: opensuse | |
flavorRelease: leap-15.6 | |
secureboot: false | |
install-secureboot: | |
uses: ./.github/workflows/reusable-install-test.yaml | |
with: | |
flavor: ${{ matrix.flavor }} | |
flavor_release: ${{ matrix.flavorRelease }} | |
secureboot: true | |
needs: | |
- core | |
strategy: | |
fail-fast: true | |
matrix: | |
include: | |
- flavor: "opensuse" | |
flavorRelease: "leap-15.6" | |
- flavor: "opensuse" | |
flavorRelease: "tumbleweed" | |
- flavor: "debian" | |
flavorRelease: "bookworm" | |
- flavor: "ubuntu" | |
flavorRelease: "22.04" | |
- flavor: "ubuntu" | |
flavorRelease: "24.04" | |
- flavor: "fedora" | |
flavorRelease: "40" | |
zfs: | |
uses: ./.github/workflows/reusable-zfs-test.yaml | |
with: | |
flavor: ${{ matrix.flavor }} | |
flavor_release: ${{ matrix.flavorRelease }} | |
needs: | |
- core | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- flavor: "ubuntu" | |
flavorRelease: "22.04" | |
acceptance: | |
uses: ./.github/workflows/reusable-qemu-acceptance-test.yaml | |
with: | |
flavor: ${{ matrix.flavor }} | |
flavor_release: ${{ matrix.flavorRelease }} | |
needs: | |
- core | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- flavor: "alpine" | |
flavorRelease: "3.19" | |
- flavor: "opensuse" | |
flavorRelease: "leap-15.6" | |
- flavor: "opensuse" | |
flavorRelease: "tumbleweed" | |
- flavor: "debian" | |
flavorRelease: "testing" | |
- flavor: "ubuntu" | |
flavorRelease: "20.04" | |
- flavor: "ubuntu" | |
flavorRelease: "22.04" | |
- flavor: "ubuntu" | |
flavorRelease: "24.04" | |
bundles: | |
uses: ./.github/workflows/reusable-qemu-bundles-test.yaml | |
with: | |
flavor: ${{ matrix.flavor }} | |
flavor_release: ${{ matrix.flavorRelease }} | |
needs: | |
- core | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- flavor: opensuse # Kubo test needs systemd version 252+ which atm is not available in Leap | |
flavorRelease: tumbleweed | |
reset: | |
uses: ./.github/workflows/reusable-qemu-reset-test.yaml | |
with: | |
flavor: ${{ matrix.flavor }} | |
flavor_release: ${{ matrix.flavorRelease }} | |
needs: | |
- core | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- flavor: alpine | |
flavorRelease: "3.19" | |
family: alpine | |
base_image: alpine:3.19 | |
model: generic | |
variant: core | |
- flavor: opensuse | |
flavorRelease: leap-15.6 | |
family: opensuse | |
base_image: opensuse/leap:15.6 | |
model: generic | |
variant: core | |
netboot: | |
uses: ./.github/workflows/reusable-qemu-netboot-test.yaml | |
with: | |
flavor: ${{ matrix.flavor }} | |
flavor_release: ${{ matrix.flavorRelease }} | |
family: ${{ matrix.family }} | |
model: ${{ matrix.model }} | |
variant: ${{ matrix.variant }} | |
base_image: ${{ matrix.baseImage }} | |
needs: | |
- core | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- flavor: alpine | |
flavorRelease: "3.19" | |
family: alpine | |
variant: core | |
model: generic | |
baseImage: alpine:3.19 | |
- flavor: opensuse | |
flavorRelease: leap-15.6 | |
family: opensuse | |
variant: core | |
model: generic | |
baseImage: opensuse/leap:15.6 | |
- flavor: ubuntu | |
flavorRelease: "24.04" | |
family: ubuntu | |
variant: core | |
model: generic | |
baseImage: ubuntu:24.04 | |
upgrade: | |
uses: ./.github/workflows/reusable-upgrade-with-cli-test.yaml | |
with: | |
flavor: ${{ matrix.flavor }} | |
flavor_release: ${{ matrix.flavorRelease }} | |
needs: | |
- core | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- flavor: alpine | |
flavorRelease: "3.19" | |
- flavor: opensuse | |
flavorRelease: leap-15.6 | |
releaseMatcher: leap-15.5 | |
upgrade-latest: | |
uses: ./.github/workflows/reusable-upgrade-latest-test.yaml | |
with: | |
flavor: ${{ matrix.flavor }} | |
flavor_release: ${{ matrix.flavorRelease }} | |
family: ${{ matrix.family }} | |
release_matcher: ${{ matrix.releaseMatcher }} # introduced so tests can be green while we wait for the kairos release with the latest flavor release | |
needs: | |
- core | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
# cant do alpine yet as it hasnt been released with the proper name | |
#- flavor: alpine | |
# flavorRelease: "3.19" | |
- flavor: opensuse | |
flavorRelease: leap-15.6 | |
family: opensuse | |
releaseMatcher: leap-15.5 | |
custom-partitioning: | |
uses: ./.github/workflows/reusable-custom-partitioning-test.yaml | |
with: | |
flavor: ${{ matrix.flavor }} | |
flavor_release: ${{ matrix.flavorRelease }} | |
needs: | |
- core | |
strategy: | |
fail-fast: true | |
matrix: | |
flavor: | |
- "opensuse" | |
flavorRelease: | |
- "leap-15.6" | |
encryption: | |
uses: ./.github/workflows/reusable-encryption-test.yaml | |
with: | |
flavor: ${{ matrix.flavor }} | |
flavor_release: ${{ matrix.flavorRelease }} | |
label: ${{ matrix.label }} | |
needs: | |
- core | |
strategy: | |
fail-fast: true | |
matrix: | |
label: | |
- "local-encryption" | |
- "remote-auto" | |
- "remote-static" | |
- "remote-https-pinned" | |
- "remote-https-bad-cert" | |
flavor: | |
- "opensuse" | |
flavorRelease: | |
- "leap-15.6" | |
standard: | |
uses: ./.github/workflows/reusable-build-provider.yaml | |
secrets: inherit | |
with: | |
flavor: ${{ matrix.flavor }} | |
flavor_release: ${{ matrix.flavorRelease }} | |
family: ${{ matrix.family }} | |
base_image: ${{ matrix.baseImage }} | |
variant: standard | |
model: generic | |
arch: amd64 | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- flavor: opensuse | |
flavorRelease: leap-15.6 | |
family: opensuse | |
baseImage: opensuse/leap:15.6 | |
- flavor: alpine | |
flavorRelease: "3.19" | |
family: alpine | |
baseImage: alpine:3.19 | |
- flavor: ubuntu | |
flavorRelease: "24.04" | |
family: ubuntu | |
baseImage: ubuntu:24.04 | |
various: | |
uses: ./.github/workflows/reusable-provider-tests.yaml | |
with: | |
flavor: ${{ matrix.flavor }} | |
flavor_release: ${{ matrix.flavorRelease }} | |
label: ${{ matrix.label }} | |
needs: | |
- standard | |
strategy: | |
fail-fast: false | |
max-parallel: 2 | |
matrix: | |
include: | |
- flavor: "opensuse" | |
flavorRelease: "leap-15.6" | |
label: "provider-qrcode-install" | |
- flavor: "opensuse" | |
flavorRelease: "leap-15.6" | |
label: "provider-upgrade" | |
# no point of running this on CI if it always fails | |
# - flavor: "opensuse" | |
# flavorRelease: "leap-15.6" | |
# label: "provider-decentralized-k8s" | |
- flavor: "opensuse" | |
flavorRelease: "leap-15.6" | |
label: "provider-upgrade-k8s" | |
# no point of running this on CI if it always fails | |
# - flavor: "alpine" | |
# flavorRelease: "3.19" | |
# label: "provider-decentralized-k8s" | |
- flavor: "alpine" | |
flavorRelease: "3.19" | |
label: "provider-upgrade-k8s" | |
standard-upgrade-latest: | |
uses: ./.github/workflows/reusable-provider-upgrade-latest-test.yaml | |
with: | |
flavor: ${{ matrix.flavor }} | |
flavor_release: ${{ matrix.flavorRelease }} | |
family: ${{ matrix.family }} | |
release_matcher: ${{ matrix.releaseMatcher }} # introduced so tests can be green while we wait for the kairos release with the latest flavor release | |
needs: | |
- standard | |
strategy: | |
fail-fast: false | |
max-parallel: 2 | |
matrix: | |
include: | |
- flavor: "opensuse" | |
flavorRelease: "leap-15.6" | |
family: "opensuse" | |
releaseMatcher: "leap-15.5" | |
# cant do alpine yet as it hasnt been released with the proper name | |
#- flavor: "alpine" | |
# flavorRelease: "3.19" | |
notify: | |
runs-on: ubuntu-latest | |
if: failure() | |
needs: | |
- core | |
- standard | |
- install | |
- zfs | |
- acceptance | |
- bundles | |
- reset | |
- netboot | |
- upgrade | |
- upgrade-latest | |
- encryption | |
- various | |
- standard-upgrade-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- run: | | |
git fetch --prune --unshallow | |
- name: save commit-message | |
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} && failure() | |
run: echo "COMMIT_MSG=$(git log -1 --pretty=format:%s)" >> $GITHUB_ENV | |
- name: notify if failure | |
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} && failure() | |
uses: slackapi/[email protected] | |
env: | |
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | |
SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK | |
with: | |
payload: | | |
{ | |
"blocks": [ | |
{ | |
"type": "section", | |
"text": { | |
"type": "mrkdwn", | |
"text": "Job failure on master branch for job ${{ github.job }} in workflow \"${{ github.workflow }}\"\n\nCommit message is \"${{ env.COMMIT_MSG }}\"\n\n Commit sha is <https://github.com/${{ github.repository }}/commit/${{ github.sha }}|${{ github.sha }}>" | |
} | |
}, | |
{ | |
"type": "divider" | |
}, | |
{ | |
"type": "actions", | |
"elements": [ | |
{ | |
"type": "button", | |
"text": { | |
"type": "plain_text", | |
"text": ":thisisfine: Failed Run", | |
"emoji": true | |
}, | |
"url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" | |
}, | |
{ | |
"type": "button", | |
"text": { | |
"type": "plain_text", | |
"text": ":kairos: Repository link", | |
"emoji": true | |
}, | |
"url": "https://github.com/${{ github.repository }}" | |
} | |
] | |
} | |
] | |
} |