name: Tools update on: schedule: # Run once a week at 00:05 AM UTC on Sunday. - cron: 5 0 * * 0 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: corepack run: | make corepack-update echo "NEW_VERSION=$(node deps/corepack/dist/corepack.js --version)" >> $GITHUB_ENV - id: lint-md-dependencies run: | cd tools/lint-md npm ci NEW_VERSION=$(npm outdated --parseable | cut -d: -f4 | xargs) if [ "$NEW_VERSION" != "" ]; then echo "NEW_VERSION=$NEW_VERSION" >> $GITHUB_ENV rm -rf package-lock.json node_modules # Include $NEW_VERSION to explicitly update the package.json # entry for the dependency and also so that semver-major updates # are not skipped. npm install --ignore-scripts $NEW_VERSION npm install --ignore-scripts cd ../.. make lint-md-rollup fi - id: doc run: | cd tools/doc npm ci NEW_VERSION=$(npm outdated --parseable | cut -d: -f4 | xargs) if [ "$NEW_VERSION" != "" ]; then echo "NEW_VERSION=$NEW_VERSION" >> $GITHUB_ENV rm -rf package-lock.json node_modules # Include $NEW_VERSION to explicitly update the package.json # entry for the dependency and also so that semver-major updates # are not skipped. npm install --ignore-scripts $NEW_VERSION npm install --ignore-scripts fi steps: - uses: actions/checkout@v2 with: persist-credentials: false - 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 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 }}'