Commit f850a98

HPCesia <me@hpcesia.com>
2026-07-23 15:15:37
ci: back to forgejo action
1 parent 092cc1e
Changed files (2)
.forgejo
workflows
.woodpecker
.forgejo/workflows/build.yml
@@ -0,0 +1,83 @@
+name: "Build and populate cache"
+on:
+  pull_request:
+  push:
+    branches:
+      - main
+      - master
+  # schedule:
+  #   # rebuild everyday at 2:51
+  #   # TIP: Choose a random time here so not all repositories are build at once:
+  #   # https://www.random.org/clock-times/?num=1&earliest=01%3A00&latest=08%3A00&interval=5&format=html&rnd=new
+  #   - cron: "51 2 * * *"
+  workflow_dispatch:
+jobs:
+  tests:
+    strategy:
+      matrix:
+        # Set this to notify the global nur package registry that changes are
+        # available.
+        #
+        # The repo name as used in
+        # https://github.com/nix-community/NUR/blob/master/repos.json
+        nurRepo:
+          - <YOUR_REPO_NAME>
+        # Set this to cache your build results in cachix for faster builds
+        # in CI and for everyone who uses your cache.
+        #
+        # Format: Your cachix cache host name without the ".cachix.org" suffix.
+        # Example: mycache (for mycache.cachix.org)
+        #
+        # For this to work, you also need to set the CACHIX_SIGNING_KEY or
+        # CACHIX_AUTH_TOKEN secret in your repository secrets settings in
+        # Github found at
+        # https://github.com/<your_githubname>/nur-packages/settings/secrets
+        cachixName:
+          - <YOUR_CACHIX_NAME>
+        nixPath:
+          - nixpkgs=https://github.com/NixOS/nixpkgs/archive/refs/heads/nixos-unstable.tar.gz
+          - nixpkgs=https://github.com/NixOS/nixpkgs/archive/refs/heads/nixos-26.05.tar.gz
+    runs-on: nixos-latest
+    steps:
+      - name: Checkout repository
+        uses: actions/checkout@v6
+      - name: Setup Nix
+        run: |
+          echo "access-tokens = github.com=${{ secrets.NIX_GITHUB_TOKEN }}" >> /etc/nix/nix.conf
+          echo "NIX_PATH=${{ matrix.nixPath }}" >> $FORGEJO_ENV
+      - name: Show nixpkgs version
+        run: nix-instantiate --eval -E '(import <nixpkgs> {}).lib.version'
+      - name: Setup cachix
+        uses: https://github.com/cachix/cachix-action@v17
+        # Don't replace <YOUR_CACHIX_NAME> here!
+        if: ${{ matrix.cachixName != '<YOUR_CACHIX_NAME>' }}
+        with:
+          name: ${{ matrix.cachixName }}
+          signingKey: "${{ secrets.CACHIX_SIGNING_KEY }}"
+          authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}"
+      - name: Restore and save Nix store
+        uses: https://github.com/nix-community/cache-nix-action@v7
+        with:
+          primary-key: nix-${{ runner.os }}-${{ hashFiles('**/*.nix', '**/flake.lock') }}
+          restore-prefixes-first-match: nix-${{ runner.os }}-
+          gc-max-store-size-linux: 2G
+          purge: true
+          purge-prefixes: nix-${{ runner.os }}-
+          purge-created: 0
+          purge-last-accessed: P1DT12H
+          purge-primary-key: never
+      - name: Check evaluation
+        run: |
+          nix-env -f . -qa \* --meta --xml \
+            --allowed-uris https://static.rust-lang.org \
+            --option restrict-eval true \
+            --option allow-import-from-derivation true \
+            --drv-path --show-trace \
+            -I nixpkgs=$(nix-instantiate --find-file nixpkgs) \
+            -I $PWD
+      - name: Build nix packages
+        run: nix shell -f '<nixpkgs>' nix-build-uncached -c nix-build-uncached ci.nix -A cacheOutputs
+      - name: Trigger NUR update
+        # Don't replace <YOUR_REPO_NAME> here!
+        if: ${{ matrix.nurRepo != '<YOUR_REPO_NAME>' }}
+        run: curl -XPOST "https://nur-update.nix-community.org/update?repo=${{ matrix.nurRepo }}"
.woodpecker/build.yml
@@ -1,53 +0,0 @@
-# Mostly modified from https://github.com/nix-community/nur-packages-template/blob/d65ab8218182ba47cd048d50ff1bae0d8b4e7546/.github/workflows/build.yml
-
-labels:
-  tier: high
-
-when:
-  - event: [push, manual]
-    branch: main
-
-matrix:
-  NIX_BRANCH:
-    - nixpkgs-unstable
-    - nixos-unstable
-    - nixos-26.05
-
-steps:
-  - name: Setup Nix config
-    image: docker.io/nixos/nix:2.32.8
-    commands:
-      - mkdir -p ./.nixconf
-      - install -Dm644 /etc/nix/nix.conf ./.nixconf
-      - echo "access-tokens = github.com=$${GITHUB_TOKEN}" >> ./.nixconf/nix.conf
-      - echo "experimental-features = nix-command flakes" >> ./.nixconf/nix.conf
-      - echo "export NIX_PATH=nixpkgs=https://github.com/NixOS/nixpkgs/archive/refs/heads/${NIX_BRANCH}.tar.gz" >> .envvars
-      - echo "export NIX_CONF_DIR=$(realpath ./.nixconf)" >> .envvars
-    environment:
-      GITHUB_TOKEN:
-        from_secret: github_token
-
-  - name: Show nixpkgs version
-    image: docker.io/nixos/nix:2.32.8
-    commands:
-      - source ./.envvars
-      - nix-instantiate --eval -E '(import <nixpkgs> {}).lib.version'
-
-  - name: Check evaluation
-    image: docker.io/nixos/nix:2.32.8
-    commands:
-      - source ./.envvars
-      - |
-        nix-env -f . -qa \* --meta --xml \
-          --allowed-uris https://static.rust-lang.org \
-          --option restrict-eval true \
-          --option allow-import-from-derivation true \
-          --drv-path --show-trace \
-          -I nixpkgs=$(nix-instantiate --find-file nixpkgs) \
-          -I $PWD
-
-  - name: Build nix packages
-    image: docker.io/nixos/nix:2.32.8
-    commands:
-      - source ./.envvars
-      - nix shell -f '<nixpkgs>' nix-build-uncached -c nix-build-uncached ci.nix -A cacheOutputs