chore: flake update #38
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: Build NixOS ISOs (x86 only) | |
| on: | |
| push: | |
| branches: [main] | |
| paths: | |
| - "iso/**" | |
| - "hosts/global/**" | |
| - "home/global/**" | |
| - "modules/**" | |
| - "flake.nix" | |
| - "flake.lock" | |
| workflow_dispatch: | |
| jobs: | |
| build-iso: | |
| strategy: | |
| matrix: | |
| iso-type: [server, desktop] | |
| arch: [x86] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Install Nix | |
| uses: DeterminateSystems/nix-installer-action@v9 | |
| - name: Setup Nix cache | |
| uses: DeterminateSystems/magic-nix-cache-action@v2 | |
| - name: Build ISO (with retry) | |
| uses: nick-fields/retry@v3 | |
| with: | |
| timeout_minutes: 45 | |
| max_attempts: 3 | |
| retry_wait_seconds: 30 | |
| command: | | |
| cd iso | |
| nix build .#${{ matrix.iso-type }}-iso-x86 \ | |
| --print-build-logs \ | |
| --accept-flake-config | |
| - name: Get ISO filename | |
| id: iso-info | |
| run: | | |
| cd iso | |
| ISO_PATH=$(nix build .#${{ matrix.iso-type }}-iso-x86 --print-out-paths --no-link) | |
| ISO_FILE=$(find $ISO_PATH -name "*.iso" -o -name "*.iso.zst" | head -1) | |
| ISO_NAME=$(basename "$ISO_FILE") | |
| echo "iso-path=$ISO_FILE" >> $GITHUB_OUTPUT | |
| echo "iso-name=$ISO_NAME" >> $GITHUB_OUTPUT | |
| - name: Upload ISO as artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: nixos-${{ matrix.iso-type }}-${{ matrix.arch }}-iso | |
| path: ${{ steps.iso-info.outputs.iso-path }} | |
| retention-days: 30 | |
| create-release: | |
| needs: build-iso | |
| runs-on: ubuntu-latest | |
| if: startsWith(github.ref, 'refs/tags/') | |
| steps: | |
| - name: Download all artifacts | |
| uses: actions/download-artifact@v4 | |
| with: | |
| path: ./isos | |
| - name: Create Release | |
| uses: softprops/action-gh-release@v1 | |
| with: | |
| files: ./isos/**/*.iso* | |
| tag_name: ${{ github.ref_name }} | |
| name: NixOS ISOs ${{ github.ref_name }} | |
| body: | | |
| ## NixOS ISOs for ${{ github.ref_name }} | |
| This release contains automatically built NixOS ISOs based on my configuration. | |
| ### Available ISOs: | |
| - **Server ISO**: Minimal server environment with SSH access | |
| - **Desktop ISO**: GNOME desktop environment for installation | |
| - **Architecture**: x86_64 (Intel/AMD systems) | |
| ### Usage: | |
| 1. Download the appropriate ISO for your system | |
| 2. Flash to USB or boot in VM | |
| 3. Default credentials: user `nixos`, password `nixos` | |
| 4. SSH is enabled for remote installation | |
| Note: ARM ISOs are not provided in this build. Users requiring ARM versions should build locally. | |
| Built automatically from commit: ${{ github.sha }} | |
| draft: false | |
| prerelease: false |