nixos/.forgejo/workflows/update.yml

49 lines
1.6 KiB
YAML
Raw Permalink Normal View History

2026-03-28 19:27:53 +00:00
name: Update flake inputs
2026-03-28 19:27:53 +00:00
on:
schedule:
- cron: '0 4 * * *' # Daily at 4am UTC
workflow_dispatch: # Allow manual trigger from the Actions tab
2026-03-28 19:27:53 +00:00
jobs:
update:
runs-on: fred-nix
2026-03-28 19:27:53 +00:00
permissions:
contents: write
2026-03-28 19:27:53 +00:00
steps:
- name: Checkout repo
uses: actions/checkout@v6
2026-03-28 19:27:53 +00:00
- name: Install Nix
run: |
set -euxo pipefail
# The Nix install script refuses to run cleanly as root unless the
# nixbld group + users exist, even with --no-daemon. The runner's
# catthehacker image runs jobs as root, so create them first.
groupadd -r nixbld || true
for i in $(seq 1 10); do
useradd -r -g nixbld -G nixbld -d /var/empty -s /sbin/nologin \
-c "Nix build user $i" "nixbld$i" || true
done
curl --proto '=https' --tlsv1.2 -sSfL https://nixos.org/nix/install | sh -s -- --no-daemon
echo "$HOME/.nix-profile/bin" >> "$GITHUB_PATH"
mkdir -p ~/.config/nix
echo 'experimental-features = nix-command flakes' >> ~/.config/nix/nix.conf
2026-03-28 19:27:53 +00:00
- name: Update flake inputs
run: nix flake update
- name: Commit and push
run: |
set -euxo pipefail
if git diff --quiet flake.lock; then
echo "No changes to flake.lock — skipping commit."
exit 0
fi
git config user.name 'forgejo-actions[bot]'
git config user.email 'actions@forg.gregersen.it'
git add flake.lock
git commit -m 'flake: update inputs'
git push