name: WPT update on: schedule: # Run once a week at 12:00 AM UTC on Sunday. - cron: 0 0 * * 0 workflow_dispatch: inputs: subsystems: description: Subsystem to run the update for required: false default: '["url", "urlpattern", "WebCryptoAPI"]' permissions: contents: read env: NODE_VERSION: lts/* jobs: wpt-subsystem-update: if: github.repository == 'nodejs/node' || github.event_name == 'workflow_dispatch' runs-on: ubuntu-slim strategy: fail-fast: false matrix: subsystem: ${{ fromJSON(github.event.inputs.subsystems || '["url", "urlpattern", "WebCryptoAPI"]') }} steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: persist-credentials: false - name: Install Node.js uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: ${{ env.NODE_VERSION }} - name: Install @node-core/utils run: npm install -g @node-core/utils - name: Setup @node-core/utils run: | ncu-config set username "$USERNAME" ncu-config set token "$GH_TOKEN" ncu-config set owner "${GITHUB_REPOSITORY_OWNER}" ncu-config set repo "$(echo "$GITHUB_REPOSITORY" | cut -d/ -f2)" env: USERNAME: ${{ secrets.JENKINS_USER }} GH_TOKEN: ${{ secrets.GH_USER_TOKEN }} - name: Update WPT for subsystem ${{ matrix.subsystem }} run: | git node wpt "$SUBSYSTEM" env: SUBSYSTEM: ${{ matrix.subsystem }} - name: Retrieve new version commit run: | new_version="$( node -p 'require("./test/fixtures/wpt/versions.json")[process.argv[1]].commit' "$SUBSYSTEM" )" { echo "long_version=$new_version" echo "short_version=${new_version:0:10}" } >> "$GITHUB_ENV" env: SUBSYSTEM: ${{ matrix.subsystem }} - name: Open or update PR for the subsystem update uses: gr2m/create-or-update-pull-request-action@b65137ca591da0b9f43bad7b24df13050ea45d1b # v1.10.1 with: # The create-or-update-pull-request-action matches the branch name by prefix, # which is why we need to add the -wpt suffix. If we dont do that, we risk matching wrong PRs, # like for example "url" mistakenly matching and updating the "urlpattern" PR # as seen in https://github.com/nodejs/node/pull/57368 branch: actions/update-${{ matrix.subsystem }}-wpt author: Node.js GitHub Bot title: 'test: update WPT for ${{ matrix.subsystem }} to ${{ env.short_version }}' commit-message: 'test: update WPT for ${{ matrix.subsystem }} to ${{ env.short_version }}' labels: test update-pull-request-title-and-body: true body: > This is an automated update of the WPT for ${{ matrix.subsystem }} to https://github.com/web-platform-tests/wpt/commit/${{ env.long_version }}. env: GITHUB_TOKEN: ${{ secrets.GH_USER_TOKEN }}