name: Build OrionOS ISO on: push: tags: - 'v*' workflow_dispatch: inputs: release_name: description: 'Release label (e.g. v0.1-mintaka)' required: false default: 'nightly' permissions: contents: write jobs: build: runs-on: ubuntu-latest timeout-minutes: 90 steps: - name: Checkout repository uses: actions/checkout@v4 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Install dependencies on host run: | sudo apt-get update -qq sudo apt-get install -y --no-install-recommends \ build-essential \ libx11-dev libxft-dev libfontconfig1-dev \ libimlib2-dev \ pkg-config \ xorg-dev - name: Build OrionOS shell components run: | make skykit rigel quill lens || true make wm deskbar launcher installer nebula orionpkg || true - name: Build ISO (Docker) run: | chmod +x build-iso.sh ./build-iso.sh env: DOCKER_BUILDKIT: 1 - name: Verify ISO was created run: | ls -lh dist/*.iso sha256sum dist/*.iso > dist/SHA256SUMS - name: Upload ISO as artifact uses: actions/upload-artifact@v4 with: name: orionos-iso-${{ github.run_number }} path: | dist/*.iso dist/SHA256SUMS retention-days: 30 - name: Create GitHub Release if: startsWith(github.ref, 'refs/tags/') uses: softprops/action-gh-release@v2 with: name: OrionOS ${{ github.ref_name }} body: | ## OrionOS ${{ github.ref_name }} Bootable live ISO. Burn to USB with: ``` sudo dd if=orionos.iso of=/dev/sdX bs=4M status=progress && sync ``` Or use [Balena Etcher](https://etcher.balena.io/). ### What's included - OrionWM — tiling/floating window manager - Rigel — native file manager (right-click menu, search) - Quill — native text editor - Lens — native image viewer - OrionDeskbar — application bar - Nebula — system settings - OrionPkg — package manager GUI - OrionInstall — graphical installer ### Verify ``` sha256sum -c SHA256SUMS ``` files: | dist/*.iso dist/SHA256SUMS draft: false prerelease: ${{ contains(github.ref_name, 'alpha') || contains(github.ref_name, 'beta') || contains(github.ref_name, 'rc') }} # Separate job: build and push Docker image used by the ISO builder docker: runs-on: ubuntu-latest if: github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/') steps: - uses: actions/checkout@v4 - name: Build ISO builder image run: docker build -t orionos-builder:latest iso/docker/ - name: Smoke test builder run: docker run --rm orionos-builder:latest echo "Builder image OK"