name: Build all NixOS Configurations on: push: branches: - '**' schedule: - cron: "20 12 * * *" # not to frequent, GitHub only allows a few pulls per hour jobs: nix build: runs-on: native steps: - name: checkout repository if: github.event_name != 'schedule' uses: actions/checkout@v2 with: depth: 0 - name: checkout repository (branch update) if: github.event_name == 'schedule' uses: actions/checkout@v2 with: ref: "update" depth: 0 - name: update nix flakes (branch update) if: github.event_name == 'schedule' run: | cat < .ssh_key ${{ secrets.SSH_KEY }} EOF chmod 600 .ssh_key eval $(ssh-agent) ssh-add .ssh_key nix flake update echo $SSH_AGENT_PID kill $SSH_AGENT_PID rm .ssh_key - name: fetch and check run: | cat < .ssh_key ${{ secrets.SSH_KEY }} EOF chmod 600 .ssh_key eval $(ssh-agent) ssh-add .ssh_key nix flake archive nix flake check --verbose --log-format raw echo $SSH_AGENT_PID kill $SSH_AGENT_PID rm .ssh_key - name: nix build orbi run: nix build .#nixosConfigurations.orbi.config.system.build.toplevel - name: nix build cream run: nix build .#nixosConfigurations.cream.config.system.build.toplevel - name: nix build cherry run: nix build .#nixosConfigurations.cherry.config.system.build.toplevel - name: nix build chungus run: nix build .#nixosConfigurations.chungus.config.system.build.toplevel - name: push if all fine (branch update) if: github.event_name == 'schedule' run: | git config --local user.email "action@git.ingolf-wagner.de" git config --local user.name "Forgejo Action" git diff --quiet && \ git diff --staged --quiet || \ (git commit -am "Update Nix flakes" && git push)