name: "Build and cache hosts configurations"
on:
  # push:
  #   branches:
  #     - master
  #   paths:
  #     - 'flake.lock'
  workflow_dispatch:

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - name: Maximize build space
      uses: easimon/maximize-build-space@master
      with:
        remove-dotnet: 'true'
        remove-android: 'true'
        remove-haskell: 'true'
        remove-codeql: 'true'
        remove-docker-images: 'true'
        build-mount-path: '/nix'
        temp-reserve-mb: '512'

    - name: Checkout
      uses: actions/checkout@v4
      with:
        ref: ${{ github.head_ref }}

    - name: Install nix
      uses: nixbuild/nix-quick-install-action@v29
      with:
        load_nixConfig: false
        nix_conf: |
          access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}
          substituters = https://cache.nixos.org https://nix-community.cachix.org https://hyprland.cachix.org https://ataraxiadev-foss.cachix.org https://cache.ataraxiadev.com/ataraxiadev
          trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs= hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc= ataraxiadev-foss.cachix.org-1:ws/jmPRUF5R8TkirnV1b525lP9F/uTBsz2KraV61058= ataraxiadev:/V5bNjSzHVGx6r2XA2fjkgUYgqoz9VnrAHq45+2FJAs=
          netrc-file = /home/runner/.config/nix/netrc

    - name: Setup attic cache
      run: |
        mkdir -p /home/runner/.config/nix
        echo "machine cache.ataraxiadev.com" > /home/runner/.config/nix/netrc
        echo "password ${{ secrets.ATTIC_TOKEN }}" >> /home/runner/.config/nix/netrc
        nix run github:AtaraxiaSjel/attic#attic -- login dev https://cache.ataraxiadev.com/ ${{ secrets.ATTIC_TOKEN }}

    - name: Build NixOS configurations
      run: nix run github:Mic92/nix-fast-build -- --max-jobs 2 --no-nom --retries 3 --skip-cached --eval-max-memory-size 2048 --eval-workers 4 --flake .#nixosHostsCI

    - name: Push to attic
      run: nix run github:AtaraxiaSjel/attic#attic -- push ataraxiadev result*
