◐ Shell
clean mode source ↗

tools: add WPT updater for specific subsystems · nodejs/node@f89bd2b

1+

name: WPT update

2+3+

on:

4+

schedule:

5+

# Run once a week at 12:00 AM UTC on Sunday.

6+

- cron: 0 0 * * *

7+

workflow_dispatch:

8+

inputs:

9+

subsystems:

10+

description: Subsystem to run the update for

11+

required: false

12+

default: '["url", "WebCryptoAPI"]'

13+14+

permissions:

15+

contents: read

16+17+

env:

18+

NODE_VERSION: lts/*

19+20+

jobs:

21+

wpt-subsystem-update:

22+

if: github.repository == 'nodejs/node' || github.event_name == 'workflow_dispatch'

23+

runs-on: ubuntu-latest

24+

strategy:

25+

fail-fast: false

26+

matrix:

27+

subsystem: ${{ fromJSON(github.event.inputs.subsystems || '["url", "WebCryptoAPI"]') }}

28+29+

steps:

30+

- uses: actions/checkout@6d193bf28034eafb982f37bd894289fe649468fc # v4.1.7

31+

with:

32+

persist-credentials: false

33+34+

- name: Install Node.js

35+

uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3

36+

with:

37+

node-version: ${{ env.NODE_VERSION }}

38+39+

- name: Install @node-core/utils

40+

run: npm install -g @node-core/utils

41+42+

- name: Setup @node-core/utils

43+

run: |

44+

ncu-config set username "$USERNAME"

45+

ncu-config set token "$GH_TOKEN"

46+

ncu-config set jenkins_token "$JENKINS_TOKEN"

47+

ncu-config set owner "${{ github.repository_owner }}"

48+

ncu-config set repo "$(echo ${{ github.repository }} | cut -d/ -f2)"

49+

env:

50+

USERNAME: ${{ secrets.JENKINS_USER }}

51+

GH_TOKEN: ${{ secrets.GH_USER_TOKEN }}

52+

JENKINS_TOKEN: ${{ secrets.JENKINS_TOKEN }}

53+54+

- name: Update WPT for subsystem ${{ matrix.subsystem }}

55+

run: |

56+

git node wpt ${{ matrix.subsystem }}

57+58+

- name: Calculate new version for WPT using jq

59+

run: |

60+

new_version=$(jq -r '.${{ matrix.subsystem }}.commit' test/fixtures/wpt/versions.json)

61+

echo "new_version=$new_version" >> $GITHUB_ENV

62+63+

- name: Open or update PR for the subsystem update

64+

uses: gr2m/create-or-update-pull-request-action@86ec1766034c8173518f61d2075cc2a173fb8c97

65+

with:

66+

branch: actions/update-wpt-${{ matrix.subsystem }}

67+

author: Node.js GitHub Bot <github-bot@iojs.org>

68+

title: 'test: update WPT for ${{ matrix.subsystem }} to ${{ env.new_version }}'

69+

commit-message: 'test: update WPT for ${{ matrix.subsystem }} to ${{ env.new_version }}'

70+

labels: test

71+

update-pull-request-title-and-body: true

72+

body: |

73+

This is an automated update of the WPT for ${{ matrix.subsystem }} to ${{ env.new_version }}.

74+

env:

75+

GITHUB_TOKEN: ${{ secrets.GH_USER_TOKEN }}