fix(ci): forward live QA credentials to maturity generation (#112201)

This commit is contained in:
Dallin Romney
2026-07-21 16:57:39 +09:00
committed by GitHub
parent c66c55abfd
commit 33f5c0bbb2
3 changed files with 28 additions and 2 deletions
+8
View File
@@ -45,6 +45,12 @@ on:
OPENCLAW_MATURITY_SCORECARD_AGENT_OPENAI_API_KEY:
description: Optional OpenAI API key used by maturity scorecard agent steps
required: false
OPENCLAW_QA_CONVEX_SITE_URL:
description: Optional Convex credential broker URL supplied by qa-live-shared
required: false
OPENCLAW_QA_CONVEX_SECRET_CI:
description: Optional Convex CI credential supplied by qa-live-shared
required: false
# Mixed-trigger workflows must declare referenced secrets for actionlint. Reusable calls
# remain artifact-only because exact caller and job workflow identities gate every use.
CLAWSWEEPER_APP_PRIVATE_KEY:
@@ -317,6 +323,8 @@ jobs:
qa_profile: all
secrets:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
OPENCLAW_QA_CONVEX_SITE_URL: ${{ secrets.OPENCLAW_QA_CONVEX_SITE_URL }}
OPENCLAW_QA_CONVEX_SECRET_CI: ${{ secrets.OPENCLAW_QA_CONVEX_SECRET_CI }}
publish:
name: Publish maturity docs PR
@@ -971,6 +971,8 @@ jobs:
expected_sha: ${{ needs.resolve_target.outputs.revision }}
secrets:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
OPENCLAW_QA_CONVEX_SITE_URL: ${{ secrets.OPENCLAW_QA_CONVEX_SITE_URL }}
OPENCLAW_QA_CONVEX_SECRET_CI: ${{ secrets.OPENCLAW_QA_CONVEX_SECRET_CI }}
qa_lab_parity_lane_release_checks:
name: Run QA Lab parity lane (${{ matrix.lane }})
+18 -2
View File
@@ -4607,8 +4607,15 @@ printf '%s\n' "\${CURL_SUCCESS_IP:-203.0.113.7}"
"MANTIS_GITHUB_APP_PRIVATE_KEY",
"OPENAI_API_KEY",
"OPENCLAW_MATURITY_SCORECARD_AGENT_OPENAI_API_KEY",
"OPENCLAW_QA_CONVEX_SECRET_CI",
"OPENCLAW_QA_CONVEX_SITE_URL",
]);
for (const secret of ["CLAWSWEEPER_APP_PRIVATE_KEY", "MANTIS_GITHUB_APP_PRIVATE_KEY"]) {
for (const secret of [
"CLAWSWEEPER_APP_PRIVATE_KEY",
"MANTIS_GITHUB_APP_PRIVATE_KEY",
"OPENCLAW_QA_CONVEX_SECRET_CI",
"OPENCLAW_QA_CONVEX_SITE_URL",
]) {
expect(maturityWorkflow.on.workflow_call.secrets[secret].required).toBe(false);
}
expect(qaEvidenceWorkflow.on.workflow_dispatch.inputs).not.toHaveProperty("fail_on_qa_failure");
@@ -4645,6 +4652,11 @@ printf '%s\n' "\${CURL_SUCCESS_IP:-203.0.113.7}"
qa_profile: "all",
});
expect(generateJob.with).not.toHaveProperty("fail_on_qa_failure");
expect(generateJob.secrets).toMatchObject({
OPENAI_API_KEY: "${{ secrets.OPENAI_API_KEY }}",
OPENCLAW_QA_CONVEX_SECRET_CI: "${{ secrets.OPENCLAW_QA_CONVEX_SECRET_CI }}",
OPENCLAW_QA_CONVEX_SITE_URL: "${{ secrets.OPENCLAW_QA_CONVEX_SITE_URL }}",
});
const workflowStep = maturityWorkflow.jobs.validate_selected_ref.steps.find(
(step: WorkflowStep) => step.name === "Resolve job workflow identity",
@@ -5019,7 +5031,11 @@ printf '%s\n' "\${CURL_SUCCESS_IP:-203.0.113.7}"
});
expect(job.with).not.toHaveProperty("qa_profile");
expect(job.with).not.toHaveProperty("publish_pull_request");
expect(Object.keys(job.secrets)).toEqual(["OPENAI_API_KEY"]);
expect(job.secrets).toMatchObject({
OPENAI_API_KEY: "${{ secrets.OPENAI_API_KEY }}",
OPENCLAW_QA_CONVEX_SECRET_CI: "${{ secrets.OPENCLAW_QA_CONVEX_SECRET_CI }}",
OPENCLAW_QA_CONVEX_SITE_URL: "${{ secrets.OPENCLAW_QA_CONVEX_SITE_URL }}",
});
expect(summaryJob.needs).toContain("maturity_scorecard_release_checks");
expect(verifyStep.env.MATURITY_SCORECARD_RELEASE_CHECKS_RESULT).toBe(
"${{ needs.maturity_scorecard_release_checks.result }}",