jobs:
prepare:
- runs-on: ubuntu-22.04
+ runs-on: ubuntu-24.04
outputs:
image-tag: ${{ steps.get-image-tag.outputs.tag }}
image-name: ${{ steps.get-image-metadata.outputs.name }}
jobs:
prepare:
- runs-on: ubuntu-22.04
+ runs-on: ubuntu-24.04
outputs:
image-name-suffix: ${{ steps.get-image-version.outputs.version }}
image-tag: ${{ steps.get-image-tag.outputs.tag }}
jobs:
validate-push-image:
name: Check only images built from tags and master are pushed
- runs-on: ubuntu-22.04
+ runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
with:
build:
name: build docker image for a product
- runs-on: ubuntu-22.04
+ runs-on: ubuntu-24.04
needs: validate-push-image
outputs:
image-digest: ${{ steps.build-image.outputs.digest }}
name: generate runner list
if: ${{ inputs.push }}
needs: build
- runs-on: ubuntu-22.04
+ runs-on: ubuntu-24.04
outputs:
runnerlist: ${{ steps.get-runnerlist.outputs.runnerlist }}
skiptests: ${{ steps.get-runnerlist.outputs.skiptests }}
- id: get-runnerlist
run: |
runner_os=()
- [[ -n "${{ contains(inputs.platforms, 'amd64') && 'ubuntu-22.04' || '' }}" ]] && runner_os+=('ubuntu-22.04')
+ [[ -n "${{ contains(inputs.platforms, 'amd64') && 'ubuntu-24.04' || '' }}" ]] && runner_os+=('ubuntu-24.04')
[[ -n "${{ vars.ARM64_USE_UBICLOUD == '1' && contains(inputs.platforms, 'arm64') || '' }}" ]] && runner_os+=('ubicloud-standard-2-arm')
echo "runnerlist=$(jo -a ${runner_os[@]})" >> "$GITHUB_OUTPUT"
# Skip tests if no runner is suitable for running them. Set a default runner to avoid CI failure
if [[ -z "${runner_os[@]}" ]]; then
- echo "runnerlist=$(jo -a ubuntu-22.04)" >> "$GITHUB_OUTPUT"
+ echo "runnerlist=$(jo -a ubuntu-24.04)" >> "$GITHUB_OUTPUT"
echo "skiptests=1" >> "$GITHUB_OUTPUT"
fi
jobs:
prepare:
name: generate OS runner and arch list
- runs-on: ubuntu-22.04
+ runs-on: ubuntu-24.04
outputs:
oslist: ${{ steps.get-oslist.outputs.oslist }}
runnerlist: ${{ steps.get-runnerlist.outputs.runnerlist }}
- id: get-oslist
run: echo "oslist=$(jo -a ${{ inputs.os }})" >> "$GITHUB_OUTPUT"
- id: get-runnerlist
- run: echo "runnerlist=$(jo -a ubuntu-22.04 ${{ vars.ARM64_USE_UBICLOUD == '1' && 'ubicloud-standard-2-arm' || '' }})" >> "$GITHUB_OUTPUT"
+ run: echo "runnerlist=$(jo -a ubuntu-24.04 ${{ vars.ARM64_USE_UBICLOUD == '1' && 'ubicloud-standard-2-arm' || '' }})" >> "$GITHUB_OUTPUT"
- id: get-archlist
run: echo "archlist=$(jo -a x86_64 ${{ vars.ARM64_USE_UBICLOUD == '1' && 'aarch64' || '' }})" >> "$GITHUB_OUTPUT"
check-hashes:
needs: build
name: Check if hashes were created for all requested targets
- runs-on: ubuntu-22.04
+ runs-on: ubuntu-24.04
steps:
- name: Get list of outputs from build jobs
run: echo '${{ toJSON(needs.build.outputs) }}' | jq 'keys[]' | grep -vE 'version|product-name' | tee /tmp/build-outputs.txt
upload-provenance:
needs: [prepare, build, provenance-src, provenance-pkgs]
name: Upload the provenance artifacts to downloads.powerdns.com
- runs-on: ubuntu-22.04
+ runs-on: ubuntu-24.04
strategy:
matrix:
os: ${{fromJson(needs.prepare.outputs.oslist)}}
jobs:
prepare:
name: generate runner list
- runs-on: ubuntu-22.04
+ runs-on: ubuntu-24.04
outputs:
runnerlist: ${{ steps.get-runnerlist.outputs.runnerlist }}
steps:
- run: sudo apt-get update && sudo apt-get -y install jo
- id: get-runnerlist
- run: echo "runnerlist=$(jo -a ubuntu-22.04 ${{ vars.ARM64_USE_UBICLOUD == '1' && 'ubicloud-standard-2-arm' || '' }})" >> "$GITHUB_OUTPUT"
+ run: echo "runnerlist=$(jo -a ubuntu-24.04 ${{ vars.ARM64_USE_UBICLOUD == '1' && 'ubicloud-standard-2-arm' || '' }})" >> "$GITHUB_OUTPUT"
build:
name: build.sh