ci(release): use release approval for npm telegram e2e · openclaw/openclaw@8ba22ca
obviyus
·
2026-04-24
·
via Recent Commits to openclaw:main
| Original file line number | Diff line number | Diff line change |
|---|
@@ -34,8 +34,8 @@ env:
|
34 | 34 | PNPM_VERSION: "10.33.0" |
35 | 35 | |
36 | 36 | jobs: |
37 | | -authorize_actor: |
38 | | -name: Authorize workflow actor |
| 37 | +validate_dispatch_ref: |
| 38 | +name: Validate dispatch ref |
39 | 39 | runs-on: blacksmith-8vcpu-ubuntu-2404 |
40 | 40 | steps: |
41 | 41 | - name: Require main workflow ref |
@@ -48,28 +48,20 @@ jobs:
|
48 | 48 | exit 1 |
49 | 49 | fi |
50 | 50 | |
51 | | - - name: Require release manager team membership |
52 | | -uses: actions/github-script@v8 |
53 | | -with: |
54 | | -script: | |
55 | | - const { owner } = context.repo; |
56 | | - const teamSlug = "openclaw-release-managers"; |
57 | | - const members = await github.paginate(github.rest.teams.listMembersInOrg, { |
58 | | - org: owner, |
59 | | - team_slug: teamSlug, |
60 | | - per_page: 100, |
61 | | - }); |
62 | | - const memberLogins = new Set(members.map((member) => member.login)); |
63 | | - core.info(`${teamSlug} members loaded: ${memberLogins.size}`); |
64 | | - if (!memberLogins.has(context.actor)) { |
65 | | - core.setFailed( |
66 | | - `Workflow requires active ${teamSlug} membership. Actor "${context.actor}" is not a member of ${owner}/${teamSlug}.`, |
67 | | - ); |
68 | | - } |
| 51 | + approve_release_manager: |
| 52 | +name: Approve release manager run |
| 53 | +needs: validate_dispatch_ref |
| 54 | +runs-on: ubuntu-latest |
| 55 | +environment: npm-release |
| 56 | +steps: |
| 57 | + - name: Approve npm Telegram beta E2E |
| 58 | +env: |
| 59 | +PACKAGE_SPEC: ${{ inputs.package_spec }} |
| 60 | +run: echo "Approved npm Telegram beta E2E for ${PACKAGE_SPEC}" |
69 | 61 | |
70 | 62 | run_npm_telegram_beta_e2e: |
71 | 63 | name: Run published npm Telegram E2E |
72 | | -needs: authorize_actor |
| 64 | +needs: approve_release_manager |
73 | 65 | runs-on: blacksmith-32vcpu-ubuntu-2404 |
74 | 66 | timeout-minutes: 60 |
75 | 67 | environment: qa-live-shared |
|
| Original file line number | Diff line number | Diff line change |
|---|
@@ -41,14 +41,15 @@ describe("npm Telegram live Docker E2E", () => {
|
41 | 41 | expect(script).toContain('credential_role="ci"'); |
42 | 42 | }); |
43 | 43 | |
44 | | -it("limits the manual npm beta workflow to release managers", () => { |
| 44 | +it("requires release manager environment approval for the manual npm beta workflow", () => { |
45 | 45 | const workflow = readFileSync(WORKFLOW_PATH, "utf8"); |
46 | 46 | |
47 | | -expect(workflow).toContain('const teamSlug = "openclaw-release-managers";'); |
48 | | -expect(workflow).toContain("github.rest.teams.listMembersInOrg"); |
49 | | -expect(workflow).toContain("memberLogins.has(context.actor)"); |
| 47 | +expect(workflow).toContain("approve_release_manager:"); |
| 48 | +expect(workflow).toContain("environment: npm-release"); |
| 49 | +expect(workflow).toContain("needs: approve_release_manager"); |
50 | 50 | expect(workflow).not.toContain('new Set(["admin", "write"])'); |
51 | 51 | expect(workflow).not.toContain("data.role_name"); |
| 52 | +expect(workflow).not.toContain("github.rest.teams.listMembersInOrg"); |
52 | 53 | expect(workflow).not.toContain("getMembershipForUserInOrg"); |
53 | 54 | }); |
54 | 55 | |
|
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。