Skip to content

build-hachiman

build-hachiman #217

Workflow file for this run

name: build-hachiman
on:
schedule:
- cron:
"00 06 * * *" # build at 06:00 UTC every day
# (20 minutes after last ublue images start building)
push:
paths-ignore: # don't rebuild if only documentation has changed
- "**.md"
- "Makefile"
- "LICENSE"
- ".gitignore"
branches:
- main
pull_request:
paths-ignore: # don't rebuild if only documentation has changed
- "**.md"
- "Makefile"
- "LICENSE"
- ".gitignore"
workflow_dispatch: # allow manually triggering builds
env:
IMAGE_NAME: "hachiman"
IMAGE_REPO: "ghcr.io/thecodenomad"
IMAGE_TAG: "latest"
VERSION: "41"
# Ref: https://github.com/JasonN3/build-container-installer/issues/110
# "Silverblue" doesn't provide user configuration during install
VARIANT: "Server"
jobs:
bluebuild:
name: Build Custom Image
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
id-token: write
strategy:
fail-fast: false # stop GH from cancelling all matrix builds if one fails
matrix:
recipe:
# !! Add your recipes here
- recipe.yml
# - recipe-cosmic.yml # Cosmic doesn't have a build yet
steps:
# the build is fully handled by the reusable github action
- name: Build Custom Image
uses: blue-build/[email protected]
with:
recipe: ${{ matrix.recipe }}
cosign_private_key: ${{ secrets.SIGNING_SECRET }}
registry_token: ${{ github.token }}
pr_event_number: ${{ github.event.number }}
# enabled by default, disable if your image is small and you want faster builds
maximize_build_space: true
# Build the ISO
- name: Build ISO
uses: jasonn3/[email protected]
id: build
env:
IMAGE_NAME: ${{ matrix.recipe == 'recipe-cosmic.yml' && 'cosmic-hachiman' || 'hachiman' }}
with:
image_name: ${{ env.IMAGE_NAME }}
image_repo: ${{ env.IMAGE_REPO }}
image_tag: ${{ env.IMAGE_TAG }}
version: ${{ env.VERSION }}
variant: ${{ env.VARIANT }}
iso_name: ${{ env.IMAGE_NAME }}-${{ env.IMAGE_TAG }}-${{ env.VERSION }}.iso
# This example is for uploading your ISO as a Github artifact. You can do something similar using any cloud storage, so long as you copy the output
- name: Upload ISO as artifact
id: upload
uses: actions/upload-artifact@v4
env:
IMAGE_NAME: ${{ matrix.recipe == 'recipe-cosmic.yml' && 'cosmic-hachiman' || 'hachiman' }}
with:
name: ${{ env.IMAGE_NAME }}-${{ env.IMAGE_TAG }}-${{ env.VERSION }}
path: |
${{ steps.build.outputs.iso_path }}/${{ steps.build.outputs.iso_name }}
${{ steps.build.outputs.iso_path }}/${{ steps.build.outputs.iso_name }}-CHECKSUM
if-no-files-found: error
retention-days: 0
compression-level: 0