name: Check flake on: push: branches: [main] path: - ./**.nix - ./flake.lock pull_request: # scheduled runs are run on my own infrastructure # schedule: # - cron: 5 4 * * 5 # At 04:05 on Friday. jobs: check: runs-on: ubuntu-latest container: image: ghcr.io/lix-project/lix:latest steps: - uses: actions/checkout@v4 - name: Enable flakes run: echo 'experimental-features = nix-command flakes' >> ~/.config/nix/nix.conf - uses: DeterminateSystems/magic-nix-cache-action@v7 - name: Run `nix flake check` run: | nix flake check --verbose --keep-going nix run nixpkgs#statix -- check . lockfile: runs-on: ubuntu-latest container: image: ghcr.io/lix-project/lix:latest needs: check if: ${{ github.event_name == 'schedule' }} # only run when scheduled steps: - uses: actions/checkout@v4 - name: Enable flakes run: echo 'experimental-features = nix-command flakes' >> ~/.config/nix/nix.conf - uses: DeterminateSystems/update-flake-lock@v23 - name: Run `nix flake check` run: nix flake check --verbose --keep-going build-documentation: runs-on: ubuntu-latest container: image: ghcr.io/lix-project/lix:latest if: ${{ github.event_name != 'schedule' }} # only run when not scheduled steps: - uses: actions/checkout@v4 - name: Enable flakes run: echo 'experimental-features = nix-command flakes' >> ~/.config/nix/nix.conf - uses: DeterminateSystems/magic-nix-cache-action@v7 - name: Build documentation run: nix build .#docs --print-build-logs - name: Upload artifact uses: actions/upload-pages-artifact@v3 with: path: ./result deploy: runs-on: ubuntu-latest needs: build-documentation if: ${{ github.event_name == 'push' }} # only run on main branch permissions: pages: write id-token: write environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} steps: - name: Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@v4