Skip to content

refactor: create org-wide build workflow #10

refactor: create org-wide build workflow

refactor: create org-wide build workflow #10

name: Build Kinoite 40
on:
pull_request:
env:
IMAGE_REGISTRY: ghcr.io/ublue-os
IMAGE_NAME: kinoite-main
SOURCE_IMAGE: kinoite
FEDORA_VERSION: 40
jobs:
generate_metadata:
runs-on: ubuntu-latest
outputs:
BUILD_ARGS: ${{ steps.set-metadata.outputs.BUILD_ARGS }}
TAGS: ${{ steps.set-metadata.outputs.TAGS }}
IMAGE_REGISTRY: ${{ steps.set-metadata.outputs.IMAGE_REGISTRY }}
IMAGE_NAME: ${{ steps.set-metadata.outputs.IMAGE_NAME }}
steps:
- name: Fetch Kernel Version
id: fetch-kernel-version
run: |
KERNEL_VERSION=$(skopeo inspect docker://${IMAGE_REGISTRY}/main-kernel:${FEDORA_VERSION} | jq -r '.Labels["ostree.linux"]')
echo "KERNEL_VERSION=${KERNEL_VERSION}" >> $GITHUB_OUTPUT
- name: Generate Tags
id: generate-tags
env:
IS_LATEST_VERSION: false
IS_GTS_VERSION: true
IS_BETA_VERSION: false
run: |
TIMESTAMP="$(date +%Y%m%d)"
SHA_SHORT="${GITHUB_SHA::7}"
TAGS=()
TAGS+=("${FEDORA_VERSION}")
if [[ "${IS_LATEST_VERSION}" == "true" ]]; then
TAGS+=("latest")
elif [[ "${IS_GTS_VERSION}" == "true" ]]; then
TAGS+=("gts")
elif [[ "${IS_BETA_VERSION}" == "true" ]]; then
TAGS+=("beta")
fi
for TAG in "${TAGS[@]}"; do
TAGS+=("${TAG}-${TIMESTAMP}")
done
for TAG in "${TAGS[@]}"; do
TAGS+=("${TAG}-${SHA_SHORT}")
done
echo "TAGS=$(IFS=,; echo "${TAGS[*]}")" >> $GITHUB_OUTPUT
- name: Set Metadata
id: set-metadata
env:
KERNEL_VERSION: ${{ steps.fetch-kernel-version.outputs.KERNEL_VERSION }}
TAGS: ${{ steps.generate-tags.outputs.TAGS }}
run: |
BUILD_ARGS=()
BUILD_ARGS+=("KERNEL_VERSION=${KERNEL_VERSION}")
BUILD_ARGS+=("SOURCE_IMAGE=${SOURCE_IMAGE}")
BUILD_ARGS+=("FEDORA_MAJOR_VERSION=${FEDORA_VERSION}")
BUILD_ARGS+=("IMAGE_NAME=${IMAGE_NAME}")
echo "BUILD_ARGS=$(IFS=,; echo "${BUILD_ARGS[*]}")" >> $GITHUB_OUTPUT
echo "TAGS=$TAGS" >> $GITHUB_OUTPUT
echo "IMAGE_REGISTRY=${IMAGE_REGISTRY}" >> $GITHUB_OUTPUT
echo "IMAGE_NAME=${IMAGE_NAME}" >> $GITHUB_OUTPUT
build:
uses: ./.github/workflows/reusable-build.yml

Check failure on line 77 in .github/workflows/build-kinoite-40.yml

View workflow run for this annotation

GitHub Actions / Build Kinoite 40

Invalid workflow file

The workflow is not valid. In .github/workflows/build-kinoite-40.yml (Line: 77, Col: 11): Error from called workflow ublue-os/main/.github/workflows/reusable-build.yml@747d1a067136bd4b2257e959950af4b90fcdf1e3 (Line: 27, Col: 24): Unrecognized named-value: 'jobs'. Located at position 1 within expression: jobs.manifest.outputs.manifest-digest In .github/workflows/build-kinoite-40.yml (Line: 77, Col: 11): Error from called workflow ublue-os/main/.github/workflows/reusable-build.yml@747d1a067136bd4b2257e959950af4b90fcdf1e3 (Line: 27, Col: 24): Unexpected value '${{ jobs.manifest.outputs.manifest-digest }}'
needs: generate_metadata
secrets: inherit
with:
image-registry: ${{ needs.generate_metadata.outputs.IMAGE_REGISTRY }}
image-name: ${{ needs.generate_metadata.outputs.IMAGE_NAME }}
platforms: amd64, arm64
build-args: ${{ needs.generate_metadata.outputs.BUILD_ARGS }}
tags: ${{ needs.generate_metadata.outputs.TAGS }}