name: Installer

on:
  push:
    tags: [installer]

jobs:
  installer:
    name: Build installer
    runs-on: ubuntu-22.04
    steps:
      - uses: actions/checkout@v4
      - name: Set up Go
        uses: https://github.com/actions/setup-go@v4
        with:
          go-version: '>=1.20.1'
      - uses: cachix/install-nix-action@v23
        with:
          github_access_token: ${{ secrets.GH_PULL_TOKEN }}
          extra_nix_config: |
            # Make sure we're using sandbox
            sandbox-fallback = false

            extra-substituters = https://nix-cache.nul.ie/main
            extra-trusted-public-keys = main:mMChkG8LwXrFirVfudqjSHasK1jV31OVElYD3eImYl8=
      - name: Set up attic
        id: setup
        run: |
          nix run .#nixpkgs.mine.x86_64-linux.attic-client -- \
            login --set-default colony https://nix-cache.nul.ie "${{ secrets.NIX_CACHE_TOKEN }}"
          echo "short_rev=$(git rev-parse --short HEAD)" >> "$GITHUB_OUTPUT"

      - name: Build installer ISO
        run: |
          nix build .#nixfiles.config.nixos.systems.installer.configuration.config.my.buildAs.iso
          ln -s "$(readlink result)"/iso/jackos-installer.iso \
            jackos-installer-${{ steps.setup.outputs.short_rev }}.iso
      - name: Build installer netboot archive
        run: |
          nix build .#nixfiles.config.nixos.systems.installer.configuration.config.my.buildAs.netbootArchive
          ln -s "$(readlink result)" \
            jackos-installer-netboot-${{ steps.setup.outputs.short_rev }}.tar

      - name: Create release
        uses: https://gitea.com/actions/release-action@main
        with:
          title: Latest installer
          files: |
            jackos-installer-${{ steps.setup.outputs.short_rev }}.iso
            jackos-installer-netboot-${{ steps.setup.outputs.short_rev }}.tar