name: Create and publish an ISO on: push: branches: - 'main' tags: - 'v*' pull_request: env: IMAGE_VERSION: 39 IMAGE_ARCH: x86_64 IMAGE_NAME: base-main IMAGE_REPO: ghcr.io/ublue-os VARIANT: Silverblue jobs: build-and-push-iso: runs-on: ubuntu-latest container: image: fedora:39 options: "--privileged" volumes: - /:/host permissions: contents: read packages: write steps: - name: Cleanup host space run: | df -h /host || true rm -rf /host/usr/local/lib/android || true rm -rf /host/usr/share/dotnet || true rm -rf /host/opt/ghc || true rm -rf /host/usr/local/.ghcup || true df -h /host || true - name: Install make and git run: dnf install -y make git - name: Checkout repository uses: actions/checkout@v4 with: submodules: recursive - name: Install dependencies run: make install-deps - name: Download image run: | make ${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 deploy.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