Skip to content

Build and release Systemd sysext images #58

Build and release Systemd sysext images

Build and release Systemd sysext images #58

Workflow file for this run

name: Build and release Systemd sysext images
on:
workflow_dispatch:
jobs:
build:
name: Build
concurrency:
group: ${{ github.ref }}
runs-on: ubuntu-22.04
permissions:
# allow the action to create a release
contents: write
steps:
# checkout the sources
- uses: actions/checkout@v3
- name: Get git tag
id: tag
uses: devops-actions/[email protected]
- name: Tag / Release checks
id: tagcheck
run: |
if [[ ${{ steps.tag.outputs.tag }} =~ ^[0-9]+$ ]]; then
echo "TAG_TYPE=numeric" >> $GITHUB_ENV
echo "DRAFT=${{ toJSON(false) }}" >> $GITHUB_OUTPUT
else
echo "TAG_TYPE=alphanumeric" >> $GITHUB_ENV
echo "DRAFT=${{ toJSON(true) }}" >> $GITHUB_OUTPUT
fi
- name: Get latest release
continue-on-error: true
id: get_release
uses: kaliber5/action-get-release@v1
with:
token: ${{ github.token }}
tag_name: ${{ steps.tag.outputs.tag }}
draft: ${{ fromJSON(steps.tagcheck.outputs.DRAFT) }}
- name: Asset download
continue-on-error: true
if: ${{ steps.get_release.outputs.id }}
uses: dsaltares/[email protected]
with:
version: ${{ steps.get_release.outputs.id }}
file: 'SHA256SUMS'
token: ${{ secrets.GITHUB_TOKEN }}
# build the images and generate a manifest
- name: Build
run: |
set -euo pipefail
images=(
"teleport-9.3.26"
"teleport-10.3.16"
"teleport-11.3.27"
"teleport-12.4.34"
"teleport-13.4.20"
"teleport-14.2.3"
"teleport-14.3.13"
"teleport-15.1.9"
)
for image in ${images[@]}; do
component="${image%-*}"
version="${image#*-}"
"./create_${component}_sysext.sh" "${version}" "${component}"
mv "${component}.raw" "${image}.raw"
done
sha256sum *.raw >> SHA256SUMS
# create a Github release with the generated artifacts
- name: Release
uses: softprops/action-gh-release@v1
if: env.TAG_TYPE == 'numeric'
with:
files: |
SHA256SUMS
*.raw
- name: Draft Release
uses: softprops/action-gh-release@v1
if: env.TAG_TYPE == 'alphanumeric'
with:
draft: true
files: |
SHA256SUMS
*.raw
- name: Blinky
run: |
curl -o /dev/null https://app.getblinky.io/api/v1/ingest/webhook/be6f78fd-ca93-4642-8bae-678f73eb0014
multi-build:
name: Multi version build
concurrency:
group: ${{ github.ref }}
runs-on: ubuntu-22.04
container: mediadepot/flatcar-developer:${{ matrix.flatcarversion }}
strategy:
max-parallel: 1
matrix:
flatcarversion: ["3602.2.3", "3760.2.0", "3815.2.3"]
permissions:
# allow the action to create a release
contents: write
steps:
# checkout the sources
- uses: actions/checkout@v3
- name: Get git tag
id: tag
uses: devops-actions/[email protected]
- name: Tag / Release checks
id: tagcheck
run: |
if [[ ${{ steps.tag.outputs.tag }} =~ ^[0-9]+$ ]]; then
echo "TAG_TYPE=numeric" >> $GITHUB_ENV
echo "DRAFT=${{ toJSON(false) }}" >> $GITHUB_OUTPUT
else
echo "TAG_TYPE=alphanumeric" >> $GITHUB_ENV
echo "DRAFT=${{ toJSON(true) }}" >> $GITHUB_OUTPUT
fi
- name: Get latest release
continue-on-error: true
id: get_release
uses: kaliber5/action-get-release@v1
with:
token: ${{ github.token }}
tag_name: ${{ steps.tag.outputs.tag }}
draft: ${{ fromJSON(steps.tagcheck.outputs.DRAFT) }}
- name: Asset download
continue-on-error: true
if: ${{ steps.get_release.outputs.id }}
uses: dsaltares/[email protected]
with:
version: ${{ steps.get_release.outputs.id }}
file: 'SHA256SUMS'
token: ${{ secrets.GITHUB_TOKEN }}
# build the images and generate a manifest
- name: Build
run: |
set -euo pipefail
images=(
"zfs-${{ matrix.flatcarversion }}"
)
for image in ${images[@]}; do
component="${image%-*}"
flatcarversion="${image#*-}"
"./create_${component}_sysext.sh" "${component}" "${flatcarversion}"
baked_component=$(ls ${component}-*.raw)
sysext_name="${baked_component%.raw}-${flatcarversion}.raw"
mv "$baked_component" "$sysext_name"
done
sha256sum *.raw >> SHA256SUMS
# create a Github release with the generated artifacts
- name: Release
uses: softprops/action-gh-release@v1
if: env.TAG_TYPE == 'numeric'
with:
files: |
SHA256SUMS
*.raw
- name: Draft Release
uses: softprops/action-gh-release@v1
if: env.TAG_TYPE == 'alphanumeric'
with:
draft: true
files: |
SHA256SUMS
*.raw