Automated npm update #29
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
## Credit to: https://dev.to/hiro0218/github-actions-how-to-automatically-run-npm-update-and-create-a-pull-request-1oig | |
name: Automated npm update | |
on: | |
schedule: | |
- cron: '0 0 * * *' # run every day at midnight | |
workflow_dispatch: | |
permissions: | |
contents: write | |
pull-requests: write | |
jobs: | |
npm-update: | |
env: | |
pr_title: '[Automated] Update NPM dependencies' | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: npm ci | |
working-directory: ./CourageScores/ClientApp | |
- name: Report outdated modules | |
run: npm outdated | |
continue-on-error: true | |
working-directory: ./CourageScores/ClientApp | |
- name: Stash formatted outdated modules | |
shell: pwsh | |
run: ../../Format-OutdatedNpmModules.ps1 -Prefix "Automated npm update via GitHub workflow<br/>" -FileName "OutdatedComment.gfm" >> $GITHUB_OUTPUT | |
working-directory: ./CourageScores/ClientApp | |
- name: Update packages | |
run: npm update | |
working-directory: ./CourageScores/ClientApp | |
- name: Check for changes | |
id: git-check | |
run: | | |
git diff --exit-code --stat || echo "changes=true" >> $GITHUB_OUTPUT | |
- name: Create Pull Request | |
if: ${{ steps.git-check.outputs.changes == 'true' }} | |
uses: peter-evans/[email protected] | |
with: | |
token: ${{ secrets.AUTOMATED_NPM_UPDATE_PAT }} | |
base: main | |
add-paths: | | |
CourageScores/ClientApp/package-lock.json | |
CourageScores/ClientApp/package.json | |
commit-message: Update npm dependencies | |
title: ${{ env.pr_title }} | |
body-path: OutdatedComment.gfm | |
branch: automated/npm-update | |
delete-branch: true | |
assignees: laingsimon |