mirror of
https://github.com/mealie-recipes/mealie.git
synced 2026-01-31 13:03:12 -05:00
98 lines
2.7 KiB
YAML
98 lines
2.7 KiB
YAML
name: Scheduled Checks
|
|
|
|
on:
|
|
schedule:
|
|
# Every monday at 7 AM
|
|
- cron: 0 7 * * 1
|
|
|
|
jobs:
|
|
update:
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
contents: write
|
|
pull-requests: write
|
|
steps:
|
|
- name: Checkout 🛎
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Setup Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: "3.12"
|
|
|
|
- name: Set PY
|
|
shell: bash
|
|
run: echo "PY=$(python -VV | sha256sum | cut -d' ' -f1)" >> $GITHUB_ENV
|
|
|
|
- name: Cache
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: |
|
|
~/.cache/pre-commit
|
|
~/.cache/pip
|
|
key: pre-commit-${{ env.PY }}-${{ hashFiles('.pre-commit-config.yaml') }}
|
|
|
|
- name: Install pre-commit
|
|
shell: bash
|
|
run: pip install -U pre-commit
|
|
|
|
- name: Run `pre-commit autoupdate`
|
|
shell: bash
|
|
run: pre-commit autoupdate --color=always
|
|
|
|
- name: Generate GitHub App Token
|
|
id: app-token
|
|
uses: actions/create-github-app-token@v1
|
|
with:
|
|
app-id: ${{ secrets.COMMIT_BOT_APP_ID }}
|
|
private-key: ${{ secrets.COMMIT_BOT_APP_PRIVATE_KEY }}
|
|
|
|
- name: Create Pull Request
|
|
id: create-pr
|
|
uses: peter-evans/create-pull-request@v6
|
|
with:
|
|
token: ${{ steps.app-token.outputs.token }}
|
|
commit-message: "Update pre-commit hooks"
|
|
branch: "fix/update-pre-commit-hooks"
|
|
labels: |
|
|
chore
|
|
delete-branch: true
|
|
base: mealie-next
|
|
title: "chore(auto): Update pre-commit hooks"
|
|
body: "Auto-generated by `.github/workflows/scheduled-checks.yml`"
|
|
|
|
- name: Approve PR
|
|
if: steps.create-pr.outputs.pull-request-number
|
|
env:
|
|
GH_TOKEN: ${{ steps.app-token.outputs.token }}
|
|
PR_NUMBER: ${{ steps.create-pr.outputs.pull-request-number }}
|
|
REPO: ${{ github.repository }}
|
|
run: |
|
|
APPROVED=$(gh pr view "$PR_NUMBER" \
|
|
--repo "$REPO" \
|
|
--json reviews \
|
|
--jq '.reviews[] | select(.state == "APPROVED") | .id' \
|
|
| wc -l)
|
|
|
|
if [ "$APPROVED" -gt 0 ]; then
|
|
echo "PR already approved"
|
|
exit 0
|
|
fi
|
|
|
|
gh pr review "$PR_NUMBER" \
|
|
--repo "$REPO" \
|
|
--approve \
|
|
--body "Auto-approved: Pre-commit hook updates"
|
|
|
|
- name: Enable auto-merge
|
|
if: steps.create-pr.outputs.pull-request-number
|
|
env:
|
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
PR_NUMBER: ${{ steps.create-pr.outputs.pull-request-number }}
|
|
REPO: ${{ github.repository }}
|
|
run: |
|
|
gh pr merge "$PR_NUMBER" \
|
|
--repo "$REPO" \
|
|
--auto \
|
|
--squash
|