mirror of
https://github.com/Swatinem/rust-cache.git
synced 2025-08-18 06:35:10 +00:00
64 lines
2.5 KiB
YAML
64 lines
2.5 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:
|
|
contents: write
|
|
pull-requests: write
|
|
|
|
jobs:
|
|
automerge:
|
|
runs-on: ubuntu-latest
|
|
if: github.event.pull_request.user.login == 'dependabot[bot]' && github.repository == 'Swatinem/rust-cache'
|
|
steps:
|
|
- name: Fetch metadata
|
|
id: metadata
|
|
uses: dependabot/fetch-metadata@v2
|
|
with:
|
|
github-token: "${{ secrets.GITHUB_TOKEN }}"
|
|
- uses: actions/checkout@v5
|
|
with:
|
|
fetch-depth: 2
|
|
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@v4
|
|
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}}
|