54 lines
2.0 KiB
YAML
54 lines
2.0 KiB
YAML
name: "Update pinned clan-core for checks"
|
|
on:
|
|
repository_dispatch:
|
|
workflow_dispatch:
|
|
schedule:
|
|
- cron: "51 2 * * *"
|
|
jobs:
|
|
update-pinned-clan-core:
|
|
runs-on: nix
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
submodules: true
|
|
- name: Update clan-core for checks
|
|
run: nix run .#update-clan-core-for-checks
|
|
- name: Create pull request
|
|
env:
|
|
CI_BOT_TOKEN: ${{ secrets.CI_BOT_TOKEN }}
|
|
run: |
|
|
export GIT_AUTHOR_NAME=clan-bot GIT_AUTHOR_EMAIL=clan-bot@clan.lol GIT_COMMITTER_NAME=clan-bot GIT_COMMITTER_EMAIL=clan-bot@clan.lol
|
|
git commit -am "Update pinned clan-core for checks"
|
|
git push origin +HEAD:update-clan-core-for-checks
|
|
set -x
|
|
resp=$(nix run --inputs-from . nixpkgs#curl -- -X POST \
|
|
-H "Authorization: token $CI_BOT_TOKEN" \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"head": "update-clan-core-for-checks",
|
|
"base": "main",
|
|
"title": "Update Clan Core for Checks",
|
|
"body": "This PR updates the pinned clan-core flake input that is used for checks."
|
|
}' \
|
|
"https://git.clan.lol/api/v1/repos/clan/clan-core/pulls")
|
|
pr_number=$(echo "$resp" | jq -r '.number')
|
|
|
|
# Merge when succeed
|
|
while true; do
|
|
resp=$(nix run --inputs-from . nixpkgs#curl -- -X POST \
|
|
-H "Authorization: token $CI_BOT_TOKEN" \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"Do": "merge",
|
|
"merge_when_checks_succeed": true,
|
|
"delete_branch_after_merge": true
|
|
}' \
|
|
"https://git.clan.lol/api/v1/repos/clan/clan-core/pulls/$pr_number/merge")
|
|
msg=$(echo $resp | jq -r '.message')
|
|
if [[ "$msg" != "Please try again later" ]]; then
|
|
break
|
|
fi
|
|
echo "Retrying in 2 seconds..."
|
|
sleep 2
|
|
done
|