name: Create and publish an ISO on: push: branches: - 'main' tags: - 'v*' pull_request: workflow_call: inputs: IMAGE_VERSION: required: true type: string IMAGE_ARCH: required: true type: string IMAGE_NAME: required: true type: string IMAGE_REPO: required: true type: string VARIANT: required: true type: string env: IMAGE_VERSION: ${{ github.event.inputs.IMAGE_VERSION || '39' }} IMAGE_ARCH: ${{ github.event.inputs.IMAGE_ARCH || 'x86_64' }} IMAGE_NAME: ${{ github.event.inputs.IMAGE_NAME || 'base-main' }} IMAGE_REPO: ${{ github.event.inputs.IMAGE_REPO || 'ghcr.io/ublue-os' }} VARIANT: ${{ github.event.inputs.VARIANT || 'Silverblue' }} CURR_REPO: ${{ github.action_repository || github.repository }} CURR_REF: ${{ github.action_ref || github.ref }} jobs: dump_contexts_to_log: runs-on: ubuntu-latest steps: - name: Dump GitHub context env: GITHUB_CONTEXT: ${{ toJson(github) }} run: echo "$GITHUB_CONTEXT" - name: Dump job context env: JOB_CONTEXT: ${{ toJson(job) }} run: echo "$JOB_CONTEXT" - name: Dump steps context env: STEPS_CONTEXT: ${{ toJson(steps) }} run: echo "$STEPS_CONTEXT" - name: Dump runner context env: RUNNER_CONTEXT: ${{ toJson(runner) }} run: echo "$RUNNER_CONTEXT" - name: Dump strategy context env: STRATEGY_CONTEXT: ${{ toJson(strategy) }} run: echo "$STRATEGY_CONTEXT" - name: Dump matrix context env: MATRIX_CONTEXT: ${{ toJson(matrix) }} run: echo "$MATRIX_CONTEXT" build-and-push-iso: runs-on: ubuntu-latest container: image: fedora:39 options: "--privileged" permissions: contents: read packages: write steps: - name: Install make and git run: dnf install -y make git - name: Checkout repository uses: actions/checkout@v4 with: repository: ${{ env.CURR_REPO }} ref: ${{ env.CURR_REF }} submodules: recursive - name: Install dependencies run: make install-deps - name: Download image run: | make container/${IMAGE_NAME}-${IMAGE_VERSION} \ arch=${IMAGE_ARCH} \ version=${IMAGE_VERSION} \ image_repo=${IMAGE_REPO} \ image_name=${IMAGE_NAME} \ variant=${VARIANT} - name: Create boot.iso run: | make boot.iso \ arch=${IMAGE_ARCH} \ version=${IMAGE_VERSION} \ image_repo=${IMAGE_REPO} \ image_name=${IMAGE_NAME} \ variant=${VARIANT} - name: Create deploy.iso run: | make ${IMAGE_NAME}-${IMAGE_VERSION}.iso \ arch=${IMAGE_ARCH} \ version=${IMAGE_VERSION} \ image_repo=${IMAGE_REPO} \ image_name=${IMAGE_NAME} \ variant=${VARIANT} mkdir end_iso mv ${IMAGE_NAME}-${IMAGE_VERSION}.iso end_iso/ - name: Upload ISO as artifact uses: actions/upload-artifact@v4 with: name: ISOs path: end_iso/*.iso if-no-files-found: error retention-days: 0 compression-level: 0 overwrite: true