Skip to content

Commit d12c371

Browse files
authored
feat(ci): enable cfa (#9470)
1 parent 47ce2a0 commit d12c371

File tree

9 files changed

+386
-66
lines changed

9 files changed

+386
-66
lines changed

.github/workflows/release-otp.yml

Lines changed: 148 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,148 @@
1+
name: Release Full(OTP)
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
tag:
7+
type: choice
8+
description: "Release Npm Tag"
9+
required: true
10+
default: "latest"
11+
options:
12+
- canary
13+
- nightly
14+
- latest
15+
- beta
16+
- alpha
17+
test:
18+
type: boolean
19+
description: "Run tests before release"
20+
required: true
21+
default: true
22+
dry_run:
23+
type: boolean
24+
description: "DryRun release"
25+
required: true
26+
default: false
27+
push_tags:
28+
type: boolean
29+
description: "push tags to github"
30+
required: true
31+
default: true
32+
33+
permissions:
34+
# To publish packages with provenance
35+
id-token: write
36+
# Allow commenting on issues for `reusable-build.yml`
37+
issues: write
38+
39+
jobs:
40+
get-runner-labels:
41+
name: Get Runner Labels
42+
uses: ./.github/workflows/get-runner-labels.yml
43+
with:
44+
force-use-github-runner: true
45+
46+
build:
47+
needs: [ get-runner-labels ]
48+
strategy:
49+
fail-fast: false # Build and test everything so we can look at all the errors
50+
matrix:
51+
array:
52+
- target: x86_64-unknown-linux-gnu
53+
runner: ${{ needs.get-runner-labels.outputs.LINUX_RUNNER_LABELS }}
54+
- target: aarch64-unknown-linux-gnu
55+
runner: ${{ needs.get-runner-labels.outputs.LINUX_RUNNER_LABELS }}
56+
- target: x86_64-unknown-linux-musl
57+
runner: ${{ needs.get-runner-labels.outputs.LINUX_RUNNER_LABELS }}
58+
- target: aarch64-unknown-linux-musl
59+
runner: ${{ needs.get-runner-labels.outputs.LINUX_RUNNER_LABELS }}
60+
- target: i686-pc-windows-msvc
61+
runner: ${{ needs.get-runner-labels.outputs.WINDOWS_RUNNER_LABELS }}
62+
- target: x86_64-pc-windows-msvc
63+
runner: ${{ needs.get-runner-labels.outputs.WINDOWS_RUNNER_LABELS }}
64+
- target: aarch64-pc-windows-msvc
65+
runner: ${{ needs.get-runner-labels.outputs.WINDOWS_RUNNER_LABELS }}
66+
- target: x86_64-apple-darwin
67+
runner: ${{ needs.get-runner-labels.outputs.MACOS_RUNNER_LABELS }}
68+
- target: aarch64-apple-darwin
69+
runner: ${{ needs.get-runner-labels.outputs.MACOS_RUNNER_LABELS }}
70+
uses: ./.github/workflows/reusable-build.yml
71+
with:
72+
target: ${{ matrix.array.target }}
73+
runner: ${{ matrix.array.runner }}
74+
test: ${{ inputs.test }}
75+
profile: "release"
76+
77+
release:
78+
name: Release
79+
environment: npm
80+
permissions:
81+
contents: write
82+
# To publish packages with provenance
83+
id-token: write
84+
runs-on: ubuntu-latest
85+
needs: build
86+
if: ${{ github.event_name == 'workflow_dispatch' }}
87+
steps:
88+
- name: Checkout Repo
89+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
90+
with:
91+
# This makes Actions fetch only one branch to release
92+
fetch-depth: 1
93+
94+
- name: Pnpm Cache
95+
uses: ./.github/actions/pnpm-cache
96+
97+
- name: Download artifacts
98+
uses: actions/download-artifact@v4.1.7
99+
with:
100+
path: artifacts
101+
102+
- name: Build node packages
103+
run: pnpm run build:js
104+
105+
- name: Move artifacts
106+
run: node scripts/build-npm.cjs
107+
108+
- name: Show binding packages
109+
run: ls -R npm
110+
111+
- name: Link optional dependencies
112+
run: pnpm install --no-frozen-lockfile
113+
114+
- name: Obtain OIDC token
115+
id: oidc
116+
run: |
117+
token=$(curl --fail -H "Authorization: bearer $ACTIONS_ID_TOKEN_REQUEST_TOKEN" \
118+
"$ACTIONS_ID_TOKEN_REQUEST_URL&audience=cfa.rspack.dev" | jq -r '.value')
119+
echo "::add-mask::${token}"
120+
echo "token=${token}" >> $GITHUB_OUTPUT
121+
shell: bash
122+
123+
- name: Obtain GitHub credentials
124+
id: github_creds
125+
run: |
126+
token=$(curl --fail "https://cfa.rspack.dev/api/request/${{ secrets.CFA_PROJECT_ID }}/github/credentials" \
127+
-X POST \
128+
-H "Content-Type: application/json" \
129+
-H "Authorization: bearer ${{ secrets.CFA_SECRET }}" \
130+
--data "{\"token\":\"${{ steps.oidc.outputs.token }}\"}" | jq -r '.GITHUB_TOKEN')
131+
echo "::add-mask::${token}"
132+
echo "token=${token}" >> $GITHUB_OUTPUT
133+
shell: bash
134+
135+
- name: Release Full
136+
run: |
137+
./x publish stable --otp --tag ${{inputs.tag}} ${{inputs.dry_run && '--dry-run' || '--no-dry-run'}} ${{inputs.push_tags && '--push-tags' || '--no-push-tags'}}
138+
env:
139+
NPM_TOKEN: ${{ secrets.OTP_NPM_TOKEN }}
140+
REPOSITORY: ${{ github.repository }}
141+
REF: ${{ github.ref }}
142+
ONLY_RELEASE_TAG: true
143+
# CFA required environment variables
144+
CFA_HOST: https://cfa.rspack.dev
145+
GITHUB_TOKEN: ${{ steps.github_creds.outputs.token }}
146+
GITHUB_OIDC_TOKEN: ${{ steps.oidc.outputs.token }}
147+
CFA_PROJECT_ID: ${{ secrets.CFA_PROJECT_ID }}
148+
CFA_SECRET: ${{ secrets.CFA_SECRET }}

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
},
5656
"devDependencies": {
5757
"@biomejs/biome": "1.9.4",
58+
"@continuous-auth/client": "^2.3.2",
5859
"@jest/reporters": "29.7.0",
5960
"@microsoft/api-extractor": "7.49.2",
6061
"@microsoft/api-extractor-model": "7.30.3",

packages/rspack-test-tools/tests/runtimeDiffCases/runtime-module/auto-public-path/__snapshot__/bundle.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
{
22
"modules": {
3-
"__WORKSPACE__/node_modules/.pnpm/css-loader@7.1.2_@rspack+core@packages+rspack_webpack@5.98.0_@swc+core@1.10.18_@swc+helpers@0_ibbwwin6vdx7dpbh6qjk62cerq/node_modules/css-loader/dist/runtime/api.js": "(function () {\n \"use strict\";\n\n module.exports = function (cssWithMappingToString) {\n var list = [];\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) content += \"@supports (\".concat(item[4], \") {\");\n if (item[2]) content += \"@media \".concat(item[2], \" {\");\n if (needLayer) content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n content += cssWithMappingToString(item);\n if (needLayer) content += \"}\";\n if (item[2]) content += \"}\";\n if (item[4]) content += \"}\";\n return content;\n }).join(\"\");\n };\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") modules = [[null, modules, undefined]];\n var alreadyImportedModules = {};\n if (dedupe) for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) alreadyImportedModules[id] = true;\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) continue;\n if (typeof layer !== \"undefined\") if (typeof item[5] === \"undefined\") item[5] = layer;else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n if (media) if (!item[2]) item[2] = media;else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n if (supports) if (!item[4]) item[4] = \"\".concat(supports);else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n list.push(item);\n }\n };\n return list;\n };\n});",
4-
"__WORKSPACE__/node_modules/.pnpm/css-loader@7.1.2_@rspack+core@packages+rspack_webpack@5.98.0_@swc+core@1.10.18_@swc+helpers@0_ibbwwin6vdx7dpbh6qjk62cerq/node_modules/css-loader/dist/runtime/getUrl.js": "(function () {\n \"use strict\";\n\n module.exports = function (url, options) {\n if (!options) options = {};\n if (!url) return url;\n url = String(url.__esModule ? url.default : url);\n if (/^['\"].*['\"]$/.test(url)) url = url.slice(1, -1);\n if (options.hash) url += options.hash;\n if (/[\"'() \\t\\n]|(%20)/.test(url) || options.needQuotes) return \"\\\"\".concat(url.replace(/\"/g, \"\\\\\\\"\").replace(/\\n/g, \"\\\\n\"), \"\\\"\");\n return url;\n };\n});",
5-
"__WORKSPACE__/node_modules/.pnpm/css-loader@7.1.2_@rspack+core@packages+rspack_webpack@5.98.0_@swc+core@1.10.18_@swc+helpers@0_ibbwwin6vdx7dpbh6qjk62cerq/node_modules/css-loader/dist/runtime/noSourceMaps.js": "(function () {\n \"use strict\";\n\n module.exports = function (i) {\n return i[1];\n };\n});",
6-
"__WORKSPACE__/node_modules/.pnpm/css-loader@7.1.2_@rspack+core@packages+rspack_webpack@5.98.0_@swc+core@1.10.18_@swc+helpers@0_ibbwwin6vdx7dpbh6qjk62cerq/node_modules/css-loader/dist/cjs.js!__WORKSPACE__/packages/rspack-test-tools/tests/runtimeDiffCases/runtime-module/auto-public-path/src/index.css": "(function () {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n var __WEBPACK_IMPORTED_MODULE_xxx__ = __webpack_require__(\"../../../../../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@packages+rspack_webpack@5.98.0_@swc+core@1.10.18_@swc+helpers@0_ibbwwin6vdx7dpbh6qjk62cerq/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n var __WEBPACK_IMPORTED_MODULE_xxx__ = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_xxx__);\n var __WEBPACK_IMPORTED_MODULE_xxx__ = __webpack_require__(\"../../../../../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@packages+rspack_webpack@5.98.0_@swc+core@1.10.18_@swc+helpers@0_ibbwwin6vdx7dpbh6qjk62cerq/node_modules/css-loader/dist/runtime/api.js\");\n var __WEBPACK_IMPORTED_MODULE_xxx__ = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_xxx__);\n var __WEBPACK_IMPORTED_MODULE_xxx__ = __webpack_require__(\"../../../../../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@packages+rspack_webpack@5.98.0_@swc+core@1.10.18_@swc+helpers@0_ibbwwin6vdx7dpbh6qjk62cerq/node_modules/css-loader/dist/runtime/getUrl.js\");\n var __WEBPACK_IMPORTED_MODULE_xxx__ = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_xxx__);\n var ___CSS_LOADER_URL_IMPORT_0___ = new URL(__webpack_require__(\"./src/logo.png\"), __webpack_require__.b);\n var ___CSS_LOADER_EXPORT___ = __WEBPACK_IMPORTED_MODULE_xxx__()(__WEBPACK_IMPORTED_MODULE_xxx__());\n var ___CSS_LOADER_URL_REPLACEMENT_0___ = __WEBPACK_IMPORTED_MODULE_xxx__()(___CSS_LOADER_URL_IMPORT_0___);\n ___CSS_LOADER_EXPORT___.push([module.id, \".class {\\n background-image: url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \");\\n}\", \"\"]);\n __webpack_exports__[\"default\"] = ___CSS_LOADER_EXPORT___;\n});",
3+
"__WORKSPACE__/node_modules/.pnpm/css-loader@7.1.2_@rspack+core@packages+rspack_webpack@5.98.0_@swc+core@1.10.18_@swc+helpers@0.5.15__webpack-cli@5.1.4_/node_modules/css-loader/dist/runtime/api.js": "(function () {\n \"use strict\";\n\n module.exports = function (cssWithMappingToString) {\n var list = [];\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) content += \"@supports (\".concat(item[4], \") {\");\n if (item[2]) content += \"@media \".concat(item[2], \" {\");\n if (needLayer) content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n content += cssWithMappingToString(item);\n if (needLayer) content += \"}\";\n if (item[2]) content += \"}\";\n if (item[4]) content += \"}\";\n return content;\n }).join(\"\");\n };\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") modules = [[null, modules, undefined]];\n var alreadyImportedModules = {};\n if (dedupe) for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) alreadyImportedModules[id] = true;\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) continue;\n if (typeof layer !== \"undefined\") if (typeof item[5] === \"undefined\") item[5] = layer;else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n if (media) if (!item[2]) item[2] = media;else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n if (supports) if (!item[4]) item[4] = \"\".concat(supports);else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n list.push(item);\n }\n };\n return list;\n };\n});",
4+
"__WORKSPACE__/node_modules/.pnpm/css-loader@7.1.2_@rspack+core@packages+rspack_webpack@5.98.0_@swc+core@1.10.18_@swc+helpers@0.5.15__webpack-cli@5.1.4_/node_modules/css-loader/dist/runtime/getUrl.js": "(function () {\n \"use strict\";\n\n module.exports = function (url, options) {\n if (!options) options = {};\n if (!url) return url;\n url = String(url.__esModule ? url.default : url);\n if (/^['\"].*['\"]$/.test(url)) url = url.slice(1, -1);\n if (options.hash) url += options.hash;\n if (/[\"'() \\t\\n]|(%20)/.test(url) || options.needQuotes) return \"\\\"\".concat(url.replace(/\"/g, \"\\\\\\\"\").replace(/\\n/g, \"\\\\n\"), \"\\\"\");\n return url;\n };\n});",
5+
"__WORKSPACE__/node_modules/.pnpm/css-loader@7.1.2_@rspack+core@packages+rspack_webpack@5.98.0_@swc+core@1.10.18_@swc+helpers@0.5.15__webpack-cli@5.1.4_/node_modules/css-loader/dist/runtime/noSourceMaps.js": "(function () {\n \"use strict\";\n\n module.exports = function (i) {\n return i[1];\n };\n});",
6+
"__WORKSPACE__/node_modules/.pnpm/css-loader@7.1.2_@rspack+core@packages+rspack_webpack@5.98.0_@swc+core@1.10.18_@swc+helpers@0.5.15__webpack-cli@5.1.4_/node_modules/css-loader/dist/cjs.js!__WORKSPACE__/packages/rspack-test-tools/tests/runtimeDiffCases/runtime-module/auto-public-path/src/index.css": "(function () {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n var __WEBPACK_IMPORTED_MODULE_xxx__ = __webpack_require__(\"../../../../../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@packages+rspack_webpack@5.98.0_@swc+core@1.10.18_@swc+helpers@0.5.15__webpack-cli@5.1.4_/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n var __WEBPACK_IMPORTED_MODULE_xxx__ = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_xxx__);\n var __WEBPACK_IMPORTED_MODULE_xxx__ = __webpack_require__(\"../../../../../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@packages+rspack_webpack@5.98.0_@swc+core@1.10.18_@swc+helpers@0.5.15__webpack-cli@5.1.4_/node_modules/css-loader/dist/runtime/api.js\");\n var __WEBPACK_IMPORTED_MODULE_xxx__ = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_xxx__);\n var __WEBPACK_IMPORTED_MODULE_xxx__ = __webpack_require__(\"../../../../../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@packages+rspack_webpack@5.98.0_@swc+core@1.10.18_@swc+helpers@0.5.15__webpack-cli@5.1.4_/node_modules/css-loader/dist/runtime/getUrl.js\");\n var __WEBPACK_IMPORTED_MODULE_xxx__ = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_xxx__);\n var ___CSS_LOADER_URL_IMPORT_0___ = new URL(__webpack_require__(\"./src/logo.png\"), __webpack_require__.b);\n var ___CSS_LOADER_EXPORT___ = __WEBPACK_IMPORTED_MODULE_xxx__()(__WEBPACK_IMPORTED_MODULE_xxx__());\n var ___CSS_LOADER_URL_REPLACEMENT_0___ = __WEBPACK_IMPORTED_MODULE_xxx__()(___CSS_LOADER_URL_IMPORT_0___);\n ___CSS_LOADER_EXPORT___.push([module.id, \".class {\\n background-image: url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \");\\n}\", \"\"]);\n __webpack_exports__[\"default\"] = ___CSS_LOADER_EXPORT___;\n});",
77
"__WORKSPACE__/packages/rspack-test-tools/tests/runtimeDiffCases/runtime-module/auto-public-path/src/index.js": "(function () {\n __webpack_require__(\"./src/index.css\");\n});",
88
"asset/resource|__WORKSPACE__/packages/rspack-test-tools/tests/runtimeDiffCases/runtime-module/auto-public-path/src/logo.png": "(function () {\n \"use strict\";\n\n module.exports = __webpack_require__.p + \"31d6cfe0d16ae931b73c.png\";\n});"
99
},

0 commit comments

Comments
 (0)