63 lines
1.9 KiB
YAML
63 lines
1.9 KiB
YAML
name: Update
|
|
|
|
on:
|
|
schedule:
|
|
- cron: "0 0 * * *"
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
update:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Install Nix
|
|
uses: cachix/install-nix-action@v31
|
|
with:
|
|
nix_path: nixpkgs=channel:nixos-unstable
|
|
|
|
- name: Use Cachix
|
|
uses: cachix/cachix-action@v16
|
|
with:
|
|
name: trevstack
|
|
authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}"
|
|
|
|
# https://github.com/actions/checkout/issues/13
|
|
- name: Set Git Config
|
|
run: |
|
|
git config user.name "github-actions[bot]"
|
|
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
|
|
git checkout -B update
|
|
|
|
- name: Update
|
|
run: nix run .#update
|
|
|
|
- name: Create Pull Request
|
|
env:
|
|
PAT: ${{ secrets.PAT }}
|
|
run: |
|
|
URL="${{ gitea.server_url }}"
|
|
REPO_OWNER_SLASH_NAME="${{ gitea.repository }}"
|
|
|
|
if ! git ls-remote --exit-code origin update; then
|
|
git push origin update --force
|
|
|
|
PR_RESPONSE=$(curl -s -X POST -H "Authorization: token $PAT" \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"title":"update","body":"automatic update","head":"update","base":"main"}' \
|
|
"https://$URL/api/v1/repos/$REPO_OWNER_SLASH_NAME/pulls")
|
|
|
|
PR_NUMBER=$(echo "$PR_RESPONSE" | jq -r '.number')
|
|
|
|
curl -s -X POST -H "Authorization: token $PAT" \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"Do":"merge","merge_when_checks_succeed":true,"delete_branch_after_merge":true}' \
|
|
"https://$URL/api/v1/repos/$REPO_OWNER_SLASH_NAME/pulls/$PR_NUMBER/merge"
|
|
|
|
else
|
|
git push origin update --force
|
|
fi
|