| name: "tools update" |
| on: |
| schedule: |
| # Run once a week at 00:05 AM UTC on Saturday. |
| - cron: '5 0 * * 6' |
| |
| workflow_dispatch: |
| |
| jobs: |
| tools_update: |
| if: github.repository == 'nodejs/node' |
| runs-on: ubuntu-latest |
| strategy: |
| fail-fast: false # Prevent other jobs from aborting if one fails |
| matrix: |
| include: |
| - id: eslint |
| run: | |
| cd tools |
| NEW_VERSION=$(npm view eslint dist-tags.latest) |
| CURRENT_VERSION=$(node -p "require('./node_modules/eslint/package.json').version") |
| if [ "$NEW_VERSION" != "$CURRENT_VERSION" ]; then |
| echo "NEW_VERSION=$NEW_VERSION" >> $GITHUB_ENV |
| ./update-eslint.sh |
| fi |
| - id: "@babel/eslint-parser" |
| run: | |
| cd tools |
| NEW_VERSION=$(npm view @babel/eslint-parser dist-tags.latest) |
| CURRENT_VERSION=$(node -p "require('./node_modules/@babel/eslint-parser/package.json').version") |
| if [ "$NEW_VERSION" != "$CURRENT_VERSION" ]; then |
| echo "NEW_VERSION=$NEW_VERSION" >> $GITHUB_ENV |
| ./update-babel-eslint.sh |
| fi |
| - id: "lint-md dependencies" |
| run: | |
| cd tools/lint-md |
| NEW_VERSION=$(npm outdated --omit=dev --parseable | cut -d: -f4 | xargs) |
| if [ "$NEW_VERSION" != "" ]; then |
| echo "NEW_VERSION=$NEW_VERSION" >> $GITHUB_ENV |
| rm -rf package-lock.json node_modules && npm install --ignore-scripts |
| make lint-md-rollup |
| fi |
| steps: |
| - uses: actions/checkout@v2 |
| - run: ${{ matrix.run }} |
| - uses: gr2m/create-or-update-pull-request-action@v1 # Create a PR or update the Action's existing PR |
| env: |
| GITHUB_TOKEN: ${{ secrets.GH_USER_TOKEN }} |
| with: |
| author: Node.js GitHub Bot <github-bot@iojs.org> |
| body: "This is an automated update of ${{ matrix.id }} to ${{ env.NEW_VERSION }}." |
| branch: "actions/tools-update-${{ matrix.id }}" # Custom branch *just* for this Action. |
| commit-message: "tools: update ${{ matrix.id }} to ${{ env.NEW_VERSION }}" |
| labels: tools |
| title: "tools: update ${{ matrix.id }} to ${{ env.NEW_VERSION }}" |