Also fixed a number of warnings from auto-follow-nix.
A2O7GY2GDLMVJAO54LJ4C66HHGTIKEMINT4TDV4CPZOZ4CJXICXAC E2VTSPN7NBVDI4NG422H6RCK3EYW35EJEZUAOONIAXULP2N3P5DAC CH6GADOKTIDF7UAWHNPSDY6WOEZ3PZ6KOGTUUDQRESNCC5RW6WRQC MIO6E4WROXK3LZSMQU5VE2ADX2WJZZVHLW5PLMDPUMFBT7X5SBVAC 2B36TKQFMQXDXKCIGCLY45IO3QZD2F6WIKDESNKFEO2X7HXSDKNAC WKTWJMZPPJXR7K6E7JZF42ORLVINJVC634G4SJKR5QBNO7UYTXBQC YFOFEQL5K3ZABTXSB7WQIVVOK2B6AWT6VBBX3OFFFPU26WXJ6YJAC 4HN5LZRSOAODRIM57WBB35C66VO7BR4PGFINLUMTGNHULEK43CEQC UXKPHE3UG2HUJ7SQUCMU7VU2V75634ZJQDH4RJOGX2JHOW2PPBBAC WOOUWJJQSIIHV6LUI5WMCRW72522AGQ2DXWXJHUJDZX6GCGR24AQC RD44H3Z4QK3LSNHNIS6N4DAEWIW7BNUF3S552JQOFXRRM3VQ5SAAC MQT74AV47PUYNCX27OMFK6BFN7PP4DX46JAACN2EPRYXUXV7EL3AC RTBMBSBABSGTRICJ4AWBKWO3JJHBRKV6FGOMYPDD7X6SS6X35ZIQC 5G7WRBMWKG6DMCOHE6WQHTYZACUHO2UPBZRWN72CFH7P45NN5E7QC YKOPXUNRLG6IIZVLDLOBIOEXZWLQCTZ7G2BTSDL2BJUYVTD6UPKAC RXJH46XLP6AFSIZZD4WEQA5A5YZLKHZ54ZUGCRH7TRAOH2Z4Q2VQC KOXYNEPMHOWPUOUDAIDAVC2ZPUCLFGN23BM6QJ4UIDGVN73SUO7AC 4NYCEHYAWPTFWSQ53SDQFC2NQ6C3CY2PUZPYIXRPLWK77LW55XTAC VYTCMSMP4GIZALMBRUA7FATGPITKJHW2PHNQVXOVHHAI4O5TW6BAC BJHBGZNP66JDQA3TSHAVF62IFYDDWJVU3QXZNSXKI4HOPTZ6MPGAC NWN24T4MFZ66BUIKWBMDHZWNUXHL7YZ3G7HHPWSPITAFFC4JR47AC TCJGOE7NJ7VVHHER4LEZGWTYY4CPTDUH344USDYU37IX4VT4UFVAC QFM3PG5VK2YVVNJ33POCTJGIPSOWMMPZITVIKMFVTL5AHTYLKTUQC 5ATRNXLJKPJMKPBHMFD5AZEVATTNRDSTESPUJ3NVF4GME2KRHVRAC TIHOQEN2ITDF7YUSX4KZFXFIH2S6K2YWM4GCTHDA3HDCJ72L6SGQC ADJBSSJQYK6JNUKKP4AOQWLBIXR2DUMBRWTGXJKZASF6M2BSFYCQC LR5HNFUDO6VGSNZ6PURY7LIOAT2I23LVBZ2XINIECIANS2P62DKQC W4YRTJ3QXV4S37ROCEI3NP4PCYDWSH56FLRJUXYGAN6OVZDIATXAC 5CPBIJKCLELAYEHUXNFFJ7IX6XXVIPYEXGXOMDEWBMDMGBPPCI7QC 3OP3QO5PAKKQTQKW76TRXFQ3ZBNPMXQKHO3WME5FPTKJ4OLVBODAC { inputs, lib, ... }:{flake-file.inputs.actions-nix = {url = "github:nialov/actions.nix";inputs.nixpkgs.follows = "os";inputs.flake-parts.follows = "parts";};imports = [inputs.actions.flakeModules.actions-nix]++ lib.filter (path: lib.hasSuffix ".nix" path) (lib.filesystem.listFilesRecursive ../ci);}
"actions": {"inputs": {"flake-parts": ["parts"],"git-hooks": "git-hooks","nixpkgs": ["os"]},"locked": {"lastModified": 1767301609,"narHash": "sha256-cpNJM/giuMngZtZb2GaSaUusY5dNkWg0D9LQbC/Ma7Q=","owner": "nialov","repo": "actions.nix","rev": "06ca0ab39bd0b2e467e35d5bab3a72311374be5c","type": "github"},"original": {"owner": "nialov","repo": "actions.nix","type": "github"}},
"locked": {"lastModified": 1768873933,"narHash": "sha256-CfyzdaeLNGkyAHp3kT5vjvXhA1pVVK7nyDziYxCPsNk=","owner": "ipetkov","repo": "crane","rev": "0bda7e7d005ccb5522a76d11ccfbf562b71953ca","type": "github"},"original": {"owner": "ipetkov","repo": "crane","type": "github"}},"crane_2": {"locked": {"lastModified": 1768873933,"narHash": "sha256-CfyzdaeLNGkyAHp3kT5vjvXhA1pVVK7nyDziYxCPsNk=","owner": "ipetkov","repo": "crane","rev": "0bda7e7d005ccb5522a76d11ccfbf562b71953ca","type": "github"},"original": {"owner": "ipetkov","repo": "crane","type": "github"}},"crane_3": {
"flake": false,"locked": {"lastModified": 1696426674,"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=","owner": "edolstra","repo": "flake-compat","rev": "0f9255e01c2351cc7d116c072cb317785dd33b33","type": "github"},"original": {"owner": "edolstra","repo": "flake-compat","type": "github"}},"flake-compat_2": {
"lastModified": 1731533236,"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=","owner": "numtide","repo": "flake-utils","rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"lastModified": 1750779888,"narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=","owner": "cachix","repo": "git-hooks.nix","rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d",
"inputs": {"nixpkgs": ["actions","git-hooks","nixpkgs"]},"locked": {"lastModified": 1709087332,"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=","owner": "hercules-ci","repo": "gitignore.nix","rev": "637db329424fd7e46cf4185293b9cc8c88c95394","type": "github"},"original": {"owner": "hercules-ci","repo": "gitignore.nix","type": "github"}},"gitignore_2": {
"type": "github"},"original": {"owner": "hercules-ci","repo": "gitignore.nix","type": "github"}},"gitignore_3": {"inputs": {"nixpkgs": ["os"]},"locked": {"lastModified": 1762808025,"narHash": "sha256-XmjITeZNMTQXGhhww6ed/Wacy2KzD6svioyCX7pkUu4=","owner": "hercules-ci","repo": "gitignore.nix","rev": "cb5e3fdca1de58ccbc3ef53de65bd372b48f567c",
"systems_3": {"locked": {"lastModified": 1681028828,"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=","owner": "nix-systems","repo": "default","rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e","type": "github"},"original": {"owner": "nix-systems","repo": "default","type": "github"}},
{ config, ... }:letinherit (config.ciLib) commonConcurrency stepsWithCheckout;in{flake.actions-nix.workflows.".forgejo/workflows/update-flake-inputs.yml" = {name = "Update Flake Inputs";on = {schedule = [# See `./update-flake-inputs.nix` for more details.{ cron = "0 0 * * *"; } # Every day at 00:05. Keep ahead of `./update-flake-inputs.yml`.];workflow_dispatch = { };};concurrency = commonConcurrency "update-flake-inputs";jobs = {update-flake-inputs = {name = "Update Flake Inputs";runs-on = "plum";steps = stepsWithCheckout [{name = "Update specific inputs";run = # bash''nix flake update opencode claude-code'';}{name = "Commit and push changes";run = # bash''fj auth add-key plumjam ''${{ secrets.FORGEJO_TOKEN }}git config --global user.name "PlumJam [bot]"git config --global user.email "forgejo-bot@plumj.am"if [ -n "$(git status --porcelain flake.lock)" ]; thengit add flake.lockgit commit -m "nix: Update flake inputs for AI tools."git push origin masterecho "Changes committed and pushed."elseecho "No changes to push."fi'';}];};};};}
{ config, ... }:letinherit (config.ciLib) commonPathsIgnore commonConcurrency stepsWithCheckout;# Helper for creating repetitive jobs.job = name: target: runs-on: {inherit name;inherit runs-on;steps = stepsWithCheckout [{inherit name;run = # bash''nix build ${target}.config.system.build.toplevel --accept-flake-config --builders "" --no-link'';}];};in{flake.actions-nix.workflows.".forgejo/workflows/nix-ci.yml" = {name = "Nix CI";on = {pull_request = {paths-ignore = commonPathsIgnore [ ];};push = {branches = [ "**" ];paths-ignore = commonPathsIgnore [ ];};schedule = [# See `./update-flake-inputs.nix` for more details.{ cron = "5 0 * * *"; } # Every day at 00:05. Keep ahead of `./update-flake-inputs.yml`.];};concurrency = commonConcurrency "nix-ci";jobs = {build-date = job "Build: date" "nixosConfigurations.date" "plum";build-kiwi = job "Build: kiwi" "nixosConfigurations.kiwi" "kiwi";# build-lime = job "Build: lime" "darwinConfigurations.lime";build-pear = job "Build: pear" "nixosConfigurations.pear" "plum";build-plum = job "Build: plum" "nixosConfigurations.plum" "plum";build-yuzu = job "Build: yuzu" "nixosConfigurations.yuzu" "plum";};};}
{ lib, ... }:{options.ciLib = lib.mkOption {type = lib.types.attrsOf lib.types.anything;default = { };description = ''Helper functions for CI workflows'';};config.ciLib.commonPathsIgnore =rest:["README.md""LICENSE.md"".forgejo/workflows/*"]++ rest;config.ciLib.commonConcurrency = name: {group = "${name}-\${{ forgejo.ref_name }}";cancel-in-progress = false;};config.ciLib.stepsWithCheckout =steps:[{name = "Checkout";uses = "actions/checkout@v5";}]++ steps;}
name: "Update Flake Inputs"on:schedule:# Unfortunately the `workflow_call` options aren't great so we'll solve# this with cron runs of `./nix-ci.yml` for now. I would prefer to handle# this automatically if it becomes easier.- cron: "0 0 * * *" # Every day at 00:00. Keep behind `./nix-ci.yml` cron.workflow_dispatch:
# This file was autogenerated by actions.nix. Do not edit it manually.# To make changes, edit the workflow definition in your flake's actions-nix configuration# (typically under flake.actions-nix.workflows.".forgejo/workflows/update-flake-inputs.yml") and run:# nix run .#render-workflows# Or commit to trigger the pre-commit hook if enabled.concurrency:cancel-in-progress: falsegroup: update-flake-inputs-${{ forgejo.ref_name }}
update-flake-inputs:name: "Update flake inputs"runs-on: plumsteps:- uses: actions/checkout@v5with:fetch-depth: 0- name: "Update specific inputs"run: nix flake update opencode claude-code- name: "Commit and push changes"run: |fj auth add-key plumjam ${{ secrets.FORGEJO_TOKEN }}
update-flake-inputs:name: Update Flake Inputsruns-on: plumsteps:- name: Checkoutuses: actions/checkout@v5- name: Update specific inputsrun: nix flake update opencode claude-code- name: Commit and push changesrun: |-fj auth add-key plumjam ${{ secrets.FORGEJO_TOKEN }}
if [ -n "$(git status --porcelain flake.lock)" ]; thengit add flake.lockgit commit -m "nix: Update flake inputs for AI tools."git push origin masterecho "Changes commited and pushed."elseecho "No changes to push."fi
if [ -n "$(git status --porcelain flake.lock)" ]; thengit add flake.lockgit commit -m "nix: Update flake inputs for AI tools."git push origin masterecho "Changes committed and pushed."elseecho "No changes to push."finame: Update Flake Inputs'on':schedule:- cron: 0 0 * * *workflow_dispatch: {}
name: "Nix CI"on:pull_request:paths-ignore:- "README.md"- "LICENSE.md"- ".forgejo/workflows/*"push:paths-ignore:- "README.md"- "LICENSE.md"- ".forgejo/workflows/*"schedule:# See `./update-flake-inputs.yml` for more details.- cron: "5 0 * * *" # Every day at 00:05. Keep ahead of `./update-flake-inputs.yml`.workflow_dispatch:
# This file was autogenerated by actions.nix. Do not edit it manually.# To make changes, edit the workflow definition in your flake's actions-nix configuration# (typically under flake.actions-nix.workflows.".forgejo/workflows/nix-ci.yml") and run:# nix run .#render-workflows# Or commit to trigger the pre-commit hook if enabled.
build-date:name: "Build: date"runs-on: plumsteps:- uses: actions/checkout@v5- name: "Build configuration for date"run: nix build .#nixosConfigurations.date.config.system.build.toplevel --accept-flake-config --builders "" --print-build-logsbuild-kiwi:name: "Build: kiwi"runs-on: kiwisteps:- uses: actions/checkout@v5- name: "Build configuration for kiwi"run: nix build .#nixosConfigurations.kiwi.config.system.build.toplevel --accept-flake-config --builders "" --print-build-logs# Until we setup a container for aarch64_darwin.# build-lime:# name: "Build: lime"# runs-on: plum# steps:# - uses: actions/checkout@v5# - name: "Build configuration for lime"# run: nix build .#darwinConfigurations.lime.config.system.build.toplevel --accept-flake-config --builders "" --no-linkbuild-pear:name: "Build: pear"runs-on: plumsteps:- uses: actions/checkout@v5- name: "Build configuration for pear"run: nix build .#nixosConfigurations.pear.config.system.build.toplevel --accept-flake-config --builders "" --no-linkbuild-plum:name: "Build: plum"runs-on: plumsteps:- uses: actions/checkout@v5- name: "Build configuration for plum"run: nix build .#nixosConfigurations.plum.config.system.build.toplevel --accept-flake-config --builders "" --print-build-logsbuild-yuzu:name: "Build: yuzu"runs-on: plumsteps:- uses: actions/checkout@v5- name: "Build configuration for yuzu"run: nix build .#nixosConfigurations.yuzu.config.system.build.toplevel --accept-flake-config --builders "" --print-build-logs
build-date:name: 'Build: date'runs-on: plumsteps:- name: Checkoutuses: actions/checkout@v5- name: 'Build: date'run: nix build nixosConfigurations.date.config.system.build.toplevel --accept-flake-config--builders "" --no-linkbuild-kiwi:name: 'Build: kiwi'runs-on: kiwisteps:- name: Checkoutuses: actions/checkout@v5- name: 'Build: kiwi'run: nix build nixosConfigurations.kiwi.config.system.build.toplevel --accept-flake-config--builders "" --no-linkbuild-pear:name: 'Build: pear'runs-on: plumsteps:- name: Checkoutuses: actions/checkout@v5- name: 'Build: pear'run: nix build nixosConfigurations.pear.config.system.build.toplevel --accept-flake-config--builders "" --no-linkbuild-plum:name: 'Build: plum'runs-on: plumsteps:- name: Checkoutuses: actions/checkout@v5- name: 'Build: plum'run: nix build nixosConfigurations.plum.config.system.build.toplevel --accept-flake-config--builders "" --no-linkbuild-yuzu:name: 'Build: yuzu'runs-on: plumsteps:- name: Checkoutuses: actions/checkout@v5- name: 'Build: yuzu'run: nix build nixosConfigurations.yuzu.config.system.build.toplevel --accept-flake-config--builders "" --no-linkname: Nix CI'on':pull_request:paths-ignore:- README.md- LICENSE.md- .forgejo/workflows/*push:branches:- '**'paths-ignore:- README.md- LICENSE.md- .forgejo/workflows/*schedule:- cron: 5 0 * * *