mirror of
https://github.com/Swatinem/rust-cache.git
synced 2025-11-01 02:53:49 +00:00
66 lines
2.7 KiB
YAML
66 lines
2.7 KiB
YAML
# https://docs.github.com/en/code-security/dependabot/working-with-dependabot/automating-dependabot-with-github-actions#enabling-automerge-on-a-pull-request
|
|
|
|
name: Dependabot Automation
|
|
on: pull_request
|
|
|
|
permissions: {}
|
|
|
|
jobs:
|
|
automerge:
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
contents: write # for pushing commits
|
|
pull-requests: write # for merging PRs
|
|
if: github.event.pull_request.user.login == 'dependabot[bot]' && github.repository == 'Swatinem/rust-cache'
|
|
steps:
|
|
- name: Fetch metadata
|
|
id: metadata
|
|
uses: dependabot/fetch-metadata@08eff52bf64351f401fb50d4972fa95b9f2c2d1b # v2.4.0
|
|
with:
|
|
github-token: "${{ secrets.GITHUB_TOKEN }}"
|
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
|
with:
|
|
fetch-depth: 2
|
|
persist-credentials: true
|
|
if: steps.metadata.outputs.update-type == 'version-update:semver-patch'
|
|
- name: Check if package-lock.json has been changed
|
|
if: steps.metadata.outputs.update-type == 'version-update:semver-patch'
|
|
id: npm
|
|
env:
|
|
PR_URL: ${{github.event.pull_request.html_url}}
|
|
GH_TOKEN: ${{secrets.GITHUB_TOKEN}}
|
|
run: |
|
|
if ! git diff --quiet HEAD~1.. -- package-lock.json; then
|
|
echo "changed=true" >> $GITHUB_OUTPUT
|
|
echo "changed=true, checking out $PR_URL to allow amend"
|
|
gh pr checkout "$PR_URL"
|
|
fi
|
|
- name: Setup node if necessary
|
|
if: steps.npm.outputs.changed != ''
|
|
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
|
|
with:
|
|
node-version: 20.x
|
|
cache: npm
|
|
- name: Re-generate and commit dist/ if changed
|
|
id: amend
|
|
if: steps.npm.outputs.changed != ''
|
|
run: |
|
|
npm ci
|
|
npm run prepare
|
|
if ! git diff --quiet dist/*/index.js; then
|
|
echo "dist/ changed, amending last commit"
|
|
export $(git log -1 --pretty=format:'GIT_COMMITTER_NAME=%cn GIT_COMMITTER_EMAIL=%ce GIT_AUTHOR_NAME=%an GIT_AUTHOR_EMAIL=%ae')
|
|
git fetch --unshallow
|
|
echo "Before amend:" && git show --name-only --pretty=
|
|
git commit --amend --no-edit --no-reset-author -- dist/*/index.js
|
|
echo "After amend:" && git show --name-only --pretty=
|
|
git push --force-with-lease origin HEAD
|
|
echo "changed=true" >> $GITHUB_OUTPUT
|
|
fi
|
|
- name: Auto-merge Patch PRs
|
|
if: steps.metadata.outputs.update-type == 'version-update:semver-patch'
|
|
run: gh pr merge --auto --merge "$PR_URL"
|
|
env:
|
|
PR_URL: ${{github.event.pull_request.html_url}}
|
|
GH_TOKEN: ${{secrets.GITHUB_TOKEN}}
|