Write end user documentation on how titanoboa should be consumed. Use the @ublue-os/bluefin repository as the canonical example. Document the config files, the action options, as well as the end-to-end consumption of titanoboa so that any user can crea... #172
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| workflow_dispatch: | |
| merge_group: | |
| pull_request: | |
| branches: | |
| - main | |
| jobs: | |
| build: | |
| name: Build ISO | |
| runs-on: ${{ matrix.platform == 'amd64' && 'ubuntu-24.04' || 'ubuntu-24.04-arm' }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| platform: [amd64, arm64] | |
| image: | |
| # cool images list :) | |
| - ghcr.io/ublue-os/bluefin:lts | |
| include: | |
| # big dumdums that dont have aarch64 :P | |
| - platform: amd64 | |
| image: ghcr.io/ublue-os/bluefin:stable | |
| - platform: amd64 | |
| image: ghcr.io/ublue-os/bluefin-nvidia-open:stable | |
| - platform: amd64 | |
| image: ghcr.io/ublue-os/bazzite:stable | |
| container-image: ghcr.io/ublue-os/bazzite-deck:stable | |
| - platform: amd64 | |
| image: ghcr.io/ublue-os/aurora:stable | |
| steps: | |
| - name: Maximize Build Space | |
| if: matrix.platform == 'amd64' | |
| uses: ublue-os/remove-unwanted-software@cc0becac701cf642c8f0a6613bbdaf5dc36b259e # v9 | |
| with: | |
| remove-codeql: true | |
| - name: Checkout | |
| uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5 | |
| - name: Build ISO | |
| id: build-iso | |
| uses: ./ | |
| with: | |
| livesys: "true" | |
| flatpaks-list: ./src/flatpaks.example.txt | |
| container-image: ${{ matrix.container-image }} | |
| image-ref: ${{ matrix.image }} | |
| add-polkit: "true" | |
| hook-pre-initramfs: ${{ github.workspace }}/.github/workflows/ci_dummy_hook_preinitramfs.sh | |
| hook-post-rootfs: ${{ github.workspace }}/.github/workflows/ci_dummy_hook_postrootfs.sh | |
| kargs: "NONE" | |
| - name: Create Image Name | |
| id: name | |
| shell: bash | |
| env: | |
| IMAGE_NAME: ${{ matrix.container-image || matrix.image }} | |
| run: | | |
| set -eoux pipefail | |
| IMAGE_NAME="${IMAGE_NAME##*/}" | |
| IMAGE_NAME="${IMAGE_NAME/:/-}" | |
| echo "IMAGE_NAME=$IMAGE_NAME" >> "$GITHUB_OUTPUT" | |
| - name: Upload Output Artifacts | |
| if: github.event_name != 'pull_request' | |
| uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 | |
| with: | |
| name: ${{ steps.name.outputs.IMAGE_NAME }}-${{ matrix.platform }} | |
| retention-days: 5 | |
| if-no-files-found: error | |
| path: | | |
| ${{ steps.build-iso.outputs.iso-dest }} | |
| check: | |
| name: Check all builds successful | |
| if: always() | |
| runs-on: ubuntu-latest | |
| needs: [build] | |
| steps: | |
| - name: Check Jobs | |
| env: | |
| JOBS: ${{ toJson(needs) }} | |
| run: | | |
| echo "Job status:" | |
| echo $JOBS | jq -r 'to_entries[] | " - \(.key): \(.value.result)"' | |
| for i in $(echo $JOBS | jq -r 'to_entries[] | .value.result'); do | |
| if [ "$i" != "success" ] && [ "$i" != "skipped" ]; then | |
| echo "" | |
| echo "Status check not okay!" | |
| exit 1 | |
| fi | |
| done |