55 CI_BUILD_NUM : ${{ github.run_id }}
66 CI_BRANCH : ${{ github.ref_name }}
77
8+ permissions :
9+ contents : write # semantic-release-dry verifies the write permissions
10+ issues : read # needed by semantic-release
11+ pull-requests : write # needed by semantic-release
12+ id-token : write # needed for npm trusted publishers with OIDC
13+
814jobs :
915 test :
1016 name : Test
1117 runs-on : ubuntu-latest
1218 steps :
13- - uses : actions/checkout@v4
14- - name : Use Node.js 20 .x
15- uses : actions/setup-node@v4
19+ - uses : actions/checkout@v6
20+ - name : Use Node.js 24 .x
21+ uses : actions/setup-node@v6
1622 with :
17- node-version : ' 20 .x'
23+ node-version : ' 24 .x'
1824 - run : npm ci
25+
26+ # Sub-project setup and testing (conditional)
27+ - name : Install browser injectable dependencies
28+ if : hashFiles('packages/browser-injectables/**') != ''
29+ run : cd packages/browser-injectables && npm ci
30+
31+ - name : Install Playwright dependencies for browser injectables
32+ if : hashFiles('packages/browser-injectables/**') != ''
33+ run : cd packages/browser-injectables && npx playwright install-deps
34+
1935 - run : git config --global user.email "test@project-helix.io" && git config --global user.name "Test Build"
2036 - run : git config --global protocol.file.allow always
2137 - run : npm run lint
2238 - run : npm test
2339 env :
2440 CIRCLE_REPOSITORY_URL : dummy-url
25- - uses : codecov/codecov-action@v4
41+
42+ # Browser injectable tests (conditional)
43+ - name : Test browser injectables
44+ if : hashFiles('packages/browser-injectables/**') != ''
45+ run : cd packages/browser-injectables && npm test
46+
47+ - uses : codecov/codecov-action@v5
2648 with :
2749 token : ${{ secrets.CODECOV_TOKEN }}
50+ files : ./coverage/lcov.info,./packages/browser-injectables/coverage/lcov.info
51+ flags : unittests,browsertests
2852 - name : Semantic Release (Dry Run)
53+ if : github.actor != 'dependabot[bot]'
2954 run : npm run semantic-release-dry
3055 env :
31- GITHUB_TOKEN : ${{ secrets.MY_GITHUB_TOKEN }}
32- NPM_TOKEN : ${{ secrets.ADOBE_BOT_NPM_TOKEN }}
56+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
3357 DISCORD_WEBHOOK : ${{ secrets.HELIX_RELEASE_DISCORD_WEBHOOK }}
3458
3559 test_win :
3660 name : Test (Windows)
3761 runs-on : windows-latest
62+ timeout-minutes : 10
3863 steps :
3964 - run : git config --global core.autocrlf false
40- - uses : actions/checkout@v4
41- - name : Use Node.js 20 .x
42- uses : actions/setup-node@v4
65+ - uses : actions/checkout@v6
66+ - name : Use Node.js 24 .x
67+ uses : actions/setup-node@v6
4368 with :
44- node-version : ' 20 .x'
69+ node-version : ' 24 .x'
4570 - run : npm ci
4671 - run : git config --global user.email "test@project-helix.io" && git config --global user.name "Test Build"
4772 - run : git config --global protocol.file.allow always
48- - run : npm run test-ci-win
73+ - name : Run Windows Tests
74+ run : npm run test-ci-win
75+ timeout-minutes : 8
4976 env :
5077 CIRCLE_REPOSITORY_URL : dummy-url
5178
@@ -55,16 +82,18 @@ jobs:
5582 if : github.ref == 'refs/heads/main'
5683 needs : [test, test_win]
5784 steps :
58- - uses : actions/checkout@v4
85+ - uses : actions/checkout@v6
5986 with :
6087 persist-credentials : false
61- - name : Use Node.js 20.x
62- uses : actions/setup-node@v4
88+ - name : Use Node.js 24.11 (LTS)
89+ uses : actions/setup-node@v6
6390 with :
64- node-version : ' 20.x '
91+ node-version : ' 24.12.0 '
6592 - run : npm ci
93+ - name : Check npm version
94+ run : npm --version
6695 - run : npm run semantic-release
6796 env :
68- GITHUB_TOKEN : ${{ secrets.MY_GITHUB_TOKEN }}
97+ GITHUB_TOKEN : ${{ secrets.ADOBE_BOT_GITHUB_TOKEN }}
6998 NPM_TOKEN : ${{ secrets.ADOBE_BOT_NPM_TOKEN }}
7099 DISCORD_WEBHOOK : ${{ secrets.HELIX_RELEASE_DISCORD_WEBHOOK }}
0 commit comments