name: "Build" on: push: workflow_dispatch: jobs: check: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: cachix/install-nix-action@v27 with: nix_path: nixpkgs=channel:nixos-unstable - uses: cachix/cachix-action@v15 with: name: traxys authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' - run: nix build .#checks.x86_64-linux.neovimTraxys # - run: nix profile install nixpkgs#nixos-rebuild nixpkgs#home-manager # - run: nixos-rebuild build --flake .#ZeNixComputa # - run: nixos-rebuild build --flake .#gandalf # - run: home-manager build --flake .#"boyerq@thinkpad-nixos" load_packages: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: cachix/install-nix-action@v27 with: nix_path: nixpkgs=channel:nixos-unstable - uses: cachix/cachix-action@v15 with: name: traxys authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' - id: load-packages run: > echo "matrix=$(nix flake show --json | jq -c '.packages."x86_64-linux" | keys')" | tee -a $GITHUB_OUTPUT outputs: matrix: ${{ steps.load-packages.outputs.matrix }} build: runs-on: ubuntu-latest needs: load_packages strategy: matrix: package: ${{ fromJson(needs.load_packages.outputs.matrix) }} steps: - uses: actions/checkout@v3 - uses: cachix/install-nix-action@v27 with: nix_path: nixpkgs=channel:nixos-unstable - uses: cachix/cachix-action@v15 with: name: traxys authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' - run: NIXPKGS_ALLOW_UNFREE=1 nix build --impure '.#${{ matrix.package }}' # This allows us to have a branch protection with matrix build-status: runs-on: ubuntu-latest needs: [build, check] if: always() steps: - name: Successful build if: ${{ !(contains(needs.*.result, 'failure')) }} run: exit 0 - name: Failing build if: ${{ contains(needs.*.result, 'failure') }} run: exit 1