mirror of
https://github.com/nodejs/node.git
synced 2026-11-09 15:11:11 -05:00
PR-URL: https://github.com/nodejs/node/pull/45972 Reviewed-By: Moshe Atlow <moshe@atlow.co.il> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
157 lines
7.0 KiB
YAML
157 lines
7.0 KiB
YAML
name: Tools and deps update
|
|
on:
|
|
schedule:
|
|
# Run once a week at 00:05 AM UTC on Sunday.
|
|
- cron: 5 0 * * 0
|
|
|
|
workflow_dispatch:
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
tools-deps-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
|
|
subsystem: tools
|
|
label: tools
|
|
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
|
|
subsystem: deps
|
|
label: dependencies
|
|
run: |
|
|
make corepack-update
|
|
echo "NEW_VERSION=$(node deps/corepack/dist/corepack.js --version)" >> $GITHUB_ENV
|
|
- id: lint-md-dependencies
|
|
subsystem: tools
|
|
label: tools
|
|
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
|
|
subsystem: tools
|
|
label: tools
|
|
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
|
|
- id: undici
|
|
subsystem: deps
|
|
label: dependencies
|
|
run: |
|
|
NEW_VERSION=$(npm view undici dist-tags.latest)
|
|
CURRENT_VERSION=$(node -p "require('./deps/undici/src/package.json').version")
|
|
if [ "$NEW_VERSION" != "$CURRENT_VERSION" ]; then
|
|
echo "NEW_VERSION=$NEW_VERSION" >> $GITHUB_ENV
|
|
./tools/update-undici.sh
|
|
fi
|
|
- id: base64
|
|
subsystem: deps
|
|
label: dependencies
|
|
run: |
|
|
NEW_VERSION=$(gh api repos/aklomp/base64/releases/latest -q '.tag_name|ltrimstr("v")')
|
|
CURRENT_VERSION=$(grep "base64 LANGUAGES C VERSION" ./deps/base64/base64/CMakeLists.txt | \
|
|
sed -n "s/^.*VERSION \(.*\))/\1/p")
|
|
if [ "$NEW_VERSION" != "$CURRENT_VERSION" ]; then
|
|
echo "NEW_VERSION=$NEW_VERSION" >> $GITHUB_ENV
|
|
./tools/update-base64.sh "$NEW_VERSION"
|
|
fi
|
|
- id: acorn
|
|
subsystem: deps
|
|
label: dependencies
|
|
run: |
|
|
NEW_VERSION=$(npm view acorn dist-tags.latest)
|
|
CURRENT_VERSION=$(node -p "require('./deps/acorn/acorn/package.json').version")
|
|
if [ "$NEW_VERSION" != "$CURRENT_VERSION" ]; then
|
|
echo "NEW_VERSION=$NEW_VERSION" >> $GITHUB_ENV
|
|
./tools/update-acorn.sh
|
|
fi
|
|
- id: acorn-walk
|
|
subsystem: deps
|
|
label: dependencies
|
|
run: |
|
|
NEW_VERSION=$(npm view acorn-walk dist-tags.latest)
|
|
CURRENT_VERSION=$(node -p "require('./deps/acorn/acorn-walk/package.json').version")
|
|
if [ "$NEW_VERSION" != "$CURRENT_VERSION" ]; then
|
|
echo "NEW_VERSION=$NEW_VERSION" >> $GITHUB_ENV
|
|
./tools/update-acorn-walk.sh
|
|
fi
|
|
- id: libuv
|
|
subsystem: deps
|
|
label: dependencies
|
|
run: |
|
|
NEW_VERSION=$(gh api repos/libuv/libuv/releases/latest -q '.tag_name|ltrimstr("v")')
|
|
VERSION_H="./deps/uv/include/uv/version.h"
|
|
CURRENT_MAJOR_VERSION=$(grep "#define UV_VERSION_MAJOR" $VERSION_H | sed -n "s/^.*MAJOR \(.*\)/\1/p")
|
|
CURRENT_MINOR_VERSION=$(grep "#define UV_VERSION_MINOR" $VERSION_H | sed -n "s/^.*MINOR \(.*\)/\1/p")
|
|
CURRENT_PATCH_VERSION=$(grep "#define UV_VERSION_PATCH" $VERSION_H | sed -n "s/^.*PATCH \(.*\)/\1/p")
|
|
CURRENT_SUFFIX_VERSION=$(grep "#define UV_VERSION_SUFFIX" $VERSION_H | sed -n "s/^.*SUFFIX \"\(.*\)\"/\1/p")
|
|
SUFFIX_STRING=$([[ -z "$CURRENT_SUFFIX_VERSION" ]] && echo "" || echo "-$CURRENT_SUFFIX_VERSION")
|
|
CURRENT_VERSION="$CURRENT_MAJOR_VERSION.$CURRENT_MINOR_VERSION.$CURRENT_PATCH_VERSION$SUFFIX_STRING"
|
|
if [ "$NEW_VERSION" != "$CURRENT_VERSION" ]; then
|
|
echo "NEW_VERSION=$NEW_VERSION" >> $GITHUB_ENV
|
|
./tools/dep_updaters/update-libuv.sh "$NEW_VERSION"
|
|
fi
|
|
- id: simdutf
|
|
subsystem: deps
|
|
label: dependencies
|
|
run: |
|
|
NEW_VERSION=$(gh api repos/simdutf/simdutf/releases/latest -q '.tag_name|ltrimstr("v")')
|
|
CURRENT_VERSION=$(grep "#define SIMDUTF_VERSION" ./deps/simdutf/simdutf.h | sed -n "s/^.*VERSION \(.*\)/\1/p")
|
|
if [ "$NEW_VERSION" != "$CURRENT_VERSION" ]; then
|
|
echo "NEW_VERSION=$NEW_VERSION" >> $GITHUB_ENV
|
|
./tools/dep_updaters/update-simdutf.sh "$NEW_VERSION"
|
|
fi
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
persist-credentials: false
|
|
- run: ${{ matrix.run }}
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GH_USER_TOKEN }}
|
|
- uses: gr2m/create-or-update-pull-request-action@dc1726cbf4dd3ce766af4ec29cfb660e0125e8ee
|
|
# Creates a PR or update the Action's existing PR, or
|
|
# no-op if the base branch is already up-to-date.
|
|
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: '${{ matrix.subsystem }}: update ${{ matrix.id }} to ${{ env.NEW_VERSION }}'
|
|
labels: ${{ matrix.label }}
|
|
title: '${{ matrix.subsystem }}: update ${{ matrix.id }} to ${{ env.NEW_VERSION }}'
|