This commit is contained in:
암냥 2026-05-08 05:16:10 +09:00
commit b7ff44a6c6
No known key found for this signature in database
6 changed files with 251 additions and 26 deletions

View file

@ -0,0 +1,62 @@
name: Update Flake Lock
on:
schedule:
- cron: '0 4 * * *'
workflow_dispatch:
jobs:
update:
runs-on: x86_64
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Update flake.lock
id: update
run: |
source /etc/bashrc
nix flake update
if git diff --quiet flake.lock; then
echo "No changes to flake.lock"
echo "updated=false" >> $GITHUB_OUTPUT
else
echo "flake.lock updated"
echo "updated=true" >> $GITHUB_OUTPUT
fi
- name: Create Pull Request
if: steps.update.outputs.updated == 'true'
env:
API_FORGEJO_TOKEN: ${{ secrets.API_FORGEJO_TOKEN }}
run: |
source /etc/bashrc
DATE=$(date +%Y-%m-%d)
BRANCH="update/flake-lock-${DATE}"
git config user.name "mizuki"
git config user.email "akiyama@mizuki.guru"
git checkout -b "$BRANCH"
git add flake.lock
git commit -m "flake.lock: update ${DATE}"
REPO_URL=$(git remote get-url origin | sed 's|https://||')
git push -f "https://oauth2:${API_FORGEJO_TOKEN}@${REPO_URL}" "$BRANCH"
FORGEJO_HOST=$(echo "$REPO_URL" | cut -d'/' -f1)
REPO_PATH=$(echo "$REPO_URL" | cut -d'/' -f2-)
curl -fsSL -X POST \
-H "Authorization: token ${API_FORGEJO_TOKEN}" \
-H "Content-Type: application/json" \
"https://${FORGEJO_HOST}/api/v1/repos/${REPO_PATH}/pulls" \
-d "{
\"title\": \"flake.lock: update ${DATE}\",
\"head\": \"${BRANCH}\",
\"base\": \"main\",
\"body\": \"Automated flake.lock update generated by Forgejo Actions.\"
}"