name: Build Flake on: workflow_dispatch: schedule: - cron: "0 0 1 * *" # At midnight on the first day of the month (Monday) jobs: build: runs-on: ubuntu-latest container: git.alexdelcamp.fr/alexandre_1a/flake-actions:latest permissions: contents: read id-token: write steps: - name: Get current time uses: josStorer/get-current-time@v2 id: start-time with: utcOffset: "+02:00" # Summer time in France - name: Cache Nix store uses: actions/cache@v3 with: path: /nix/store key: nix-store-${{ hashFiles('**/*.nix') }} restore-keys: | nix-store- #- name: Install nix # uses: DeterminateSystems/nix-installer-action@main # with: # extra-conf: | # trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs= hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc= nix-citizen.cachix.org-1:lPMkWc2X8XD4/7YPEEwXKKBg+SVbYTVrAaLA2wQTKCo= # trusted-substituters = https://cache.nixos.org https://nix-community.cachix.org https://hyprland.cachix.org https://nix-citizen.cachix.org #- name: Setup nix cache (experimental) # uses: DeterminateSystems/magic-nix-cache-action@main - name: Checkout uses: actions/checkout@v4 - name: Build bumped flake (only one host) continue-on-error: true run: | nix build .#nixosConfigurations.FW16.config.system.build.toplevel --print-out-paths --no-link - name: Cache Nix store uses: actions/cache@v3 with: path: /nix/store key: nix-store-${{ hashFiles('**/*.nix') }} restore-keys: | nix-store- - name: Get Build time uses: josStorer/get-current-time@v2 id: end-time with: utcOffset: "+02:00" # Summer time in France - name: Calculate build time id: duration run: | duration=$((${{ steps.start-time.outputs.time }} - ${{ steps.end-time.outputs.time }})) echo "duration=${duration}" >> "$GITHUB_OUTPUT" - name: Notify Failure if: failure() run: | curl \ -H "Title: Failed to build flake !"\ -d "Build started on ${{ steps.start-time.outputs.readableTime }} and failed.\nLasted ${{ steps.duration.outputs.duration }}" \ https://ntfy.alexdelcamp.fr/FlakeBuild - name: Notify Success run: | curl \ -H "Title: Successfully builded flake!" \ -d "Build started on ${{ steps.start-time.outputs.readableTime }} and succeeded.\nLasted ${{ steps.duration.outputs.duration }}" \ https://ntfy.alexdelcamp.fr/FlakeBuild