Skip to content

Introduce RHEL family (#1953) #4966

Introduce RHEL family (#1953)

Introduce RHEL family (#1953) #4966

Workflow file for this run

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)}}
framework:
uses: ./.github/workflows/reusable-build-framework-flavor.yaml
secrets: inherit
with:
flavor: ${{ matrix.flavor }}
strategy:
fail-fast: false
matrix:
include:
- flavor: "generic"
- flavor: "fips"
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.5
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: "23.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.18"
- flavor: "opensuse"
flavorRelease: "leap-15.5"
- flavor: "opensuse"
flavorRelease: "tumbleweed"
- flavor: "ubuntu"
flavorRelease: "23.04"
- flavor: "debian"
flavorRelease: "testing"
- flavor: "ubuntu"
flavorRelease: "20.04"
- flavor: "ubuntu"
flavorRelease: "22.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: leap-15.5
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.18"
family: alpine
base_image: alpine:3.18
model: generic
variant: core
- flavor: opensuse
flavorRelease: leap-15.5
family: opensuse-leap
base_image: opensuse/leap:15.5
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.18"
family: alpine
variant: core
model: generic
baseImage: alpine:3.18
- flavor: opensuse
flavorRelease: leap-15.5
family: opensuse-leap
variant: core
model: generic
baseImage: opensuse/leap:15.5
- flavor: ubuntu
flavorRelease: "23.04"
family: ubuntu
variant: core
model: generic
baseImage: ubuntu:23.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.18"
- flavor: opensuse
flavorRelease: leap-15.5
upgrade-latest:
uses: ./.github/workflows/reusable-upgrade-latest-test.yaml
with:
flavor: ${{ matrix.flavor }}
flavor_release: ${{ matrix.flavorRelease }}
family: ${{ matrix.family }}
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.18"
- flavor: opensuse
flavorRelease: leap-15.5
family: opensuse-leap
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.5"
standard:
uses: ./.github/workflows/reusable-build-provider.yaml
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.5
family: opensuse-leap
baseImage: opensuse/leap:15.5
- flavor: alpine
flavorRelease: "3.18"
family: alpine
baseImage: alpine:3.18
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.5"
label: "provider-qrcode-install"
- flavor: "opensuse"
flavorRelease: "leap-15.5"
label: "provider-upgrade"
- flavor: "opensuse"
flavorRelease: "leap-15.5"
label: "provider-decentralized-k8s"
- flavor: "opensuse"
flavorRelease: "leap-15.5"
label: "provider-upgrade-k8s"
- flavor: "alpine"
flavorRelease: "3.18"
label: "provider-decentralized-k8s"
- flavor: "alpine"
flavorRelease: "3.18"
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 }}
needs:
- standard
strategy:
fail-fast: false
max-parallel: 2
matrix:
include:
- flavor: "opensuse"
flavorRelease: "leap-15.5"
family: "opensuse-leap"
# cant do alpine yet as it hasnt been released with the proper name
#- flavor: "alpine"
# flavorRelease: "3.18"
notify:
runs-on: ubuntu-latest
if: failure()
needs:
- core
- standard
- framework
- 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 }}"
}
]
}
]
}