feat: add GitLab CI/CD integration for setup-vp#97
Conversation
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 277acafbdc
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
GitLab CI Test StepsReplace 1. Basic smoke testVerify that the setup works as expected under standard conditions. include:
- remote: "https://raw.githubusercontent.com/voidzero-dev/setup-vp/<test-ref>/gitlab/setup-vp.yml"
inputs:
setup-ref: "<test-ref>"
node-version: "22"
run-install: "true"
test:
extends: .setup-vp
image: node:22
script:
- vp --version
- node --version
- vp run testFor this test, check if the pipeline config is accepted and the setup correctly reaches the script section. You should see 2. Old Node image regression testEnsure that the setup remains compatible even when using an older Node image. include:
- remote: "https://raw.githubusercontent.com/voidzero-dev/setup-vp/<test-ref>/gitlab/setup-vp.yml"
inputs:
setup-ref: "<test-ref>"
node-version: "22"
run-install: "false"
test:
extends: .setup-vp
image: node:18
script:
- node --version
- vp --versionConfirm that the setup succeeds on the 3. Multi install entriesTest whether the include:
- remote: "https://raw.githubusercontent.com/voidzero-dev/setup-vp/<test-ref>/gitlab/setup-vp.yml"
inputs:
setup-ref: "<test-ref>"
node-version: "22"
run-install: |
- cwd: .
args: ['--frozen-lockfile']
test:
extends: .setup-vp
image: node:22
script:
- vp --versionVerify that the pipeline configuration is valid and that |
|
Today I will set up a continuous verification repository on GitLab, and the results will be synchronized. |
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 45e42bf985
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Thank you so much for testing this out on your actual in-house GitLab Runner. It is a huge relief to know that the bundled runtime works perfectly across the entire main workflow, from structured installs and the run-install: false setting to SFW wrapping, vp build, pack, and test, as well as monorepo usage and task caching. Fixed the diff issue where only the |
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a05032c174
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review |
|
Codex Review: Didn't find any major issues. Hooray! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
fengmk2
left a comment
There was a problem hiding this comment.
@naokihaba I will run a round simplify before I merge.
- renovate: track SFW_VERSION in src/gitlab/install-sfw.ts so the GitLab copy is bumped alongside the GitHub Action one instead of freezing - install-sfw: drop unused isSfwSupported/sfwAssetName helpers and compute isMuslLinux() once on the unsupported-platform fallback path - run-install: extract applyEntryLine to remove three near-identical copies of the key/value + block-array handling, and correct the comment explaining why the runtime avoids zod/yaml (keep the fetched bundle tiny, not "shared chunks break relative imports") - rebuild dist bundles with vite-plus 0.2.2 to match the toolchain
| function parseScalar(value: string): string { | ||
| const trimmed = String(value || "").trim(); | ||
| if ( | ||
| (trimmed.startsWith('"') && trimmed.endsWith('"')) || | ||
| (trimmed.startsWith("'") && trimmed.endsWith("'")) | ||
| ) { | ||
| return trimmed.slice(1, -1); | ||
| } | ||
| return trimmed; | ||
| } |
| for (const char of body) { | ||
| if (quote) { | ||
| if (char === quote) quote = ""; | ||
| current += char; | ||
| continue; | ||
| } | ||
| if (char === "'" || char === '"') { | ||
| quote = char; | ||
| current += char; | ||
| continue; | ||
| } | ||
| if (char === ",") { | ||
| pushCurrent(); | ||
| continue; | ||
| } | ||
| current += char; | ||
| } |
| export async function setupSfw( | ||
| runInstallEntries: RunInstallEntry[], | ||
| env: NodeJS.ProcessEnv = process.env, | ||
| ): Promise<InstallCommand> { | ||
| if (env.SETUP_VP_SFW !== "true") return "vp"; | ||
|
|
||
| if (runInstallEntries.length === 0) { | ||
| console.log( | ||
| "setup-vp: sfw was requested but run-install is disabled; sfw will not be invoked.", | ||
| ); | ||
| return "vp"; | ||
| } | ||
|
|
||
| const existing = commandPath("sfw"); | ||
| if (existing) { | ||
| console.log(`setup-vp: using existing sfw on PATH: ${existing}`); | ||
| return "sfw"; | ||
| } |
resolves #88
I thought it would be best to document the GitLab integration features as an RFC, so I’ve put everything together along with a diagram of the overall flow.
rfcs/assets/gitlab-runtime-flow.svg