From 6031cee0a24bf36022685199d09cd0b99671b988 Mon Sep 17 00:00:00 2001 From: Gorka Date: Thu, 7 May 2026 15:14:39 -0300 Subject: [PATCH 1/3] fix(invite-gate): drop ${{ }} from input description so workflow parses MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit GitHub evaluates ${{ }} expressions inside workflow_call.inputs.*.description at workflow-load time, where the github context isn't available. That made the entire reusable workflow invalid, so every caller (moonlight-pay, provider-console, council-console, etc.) failed in 0s with "no jobs were run" since 2026-04-22 — invite-gate has never actually executed. Replace the embedded expression with prose; description still conveys intent. --- .github/workflows/invite-gate-reusable.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/invite-gate-reusable.yml b/.github/workflows/invite-gate-reusable.yml index 0f6dfcf..2900e0a 100644 --- a/.github/workflows/invite-gate-reusable.yml +++ b/.github/workflows/invite-gate-reusable.yml @@ -4,7 +4,7 @@ on: workflow_call: inputs: local_dev_ref: - description: "local-dev branch or ref (e.g. fix/my-branch). Set to ${{ github.head_ref }} when called from a local-dev PR; defaults to main." + description: "local-dev branch or ref (e.g. fix/my-branch). Set to the PR head ref when called from a local-dev PR; defaults to main." type: string default: "main" provider_console_ref: From bc2aacbca0aaf97203ccc6e7f5dea1c0249aeee8 Mon Sep 17 00:00:00 2001 From: Gorka Date: Thu, 7 May 2026 15:56:07 -0300 Subject: [PATCH 2/3] fix(invite-gate): build + cache Freighter extension at pinned 5.39.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Playwright suite expects ./playwright/freighter-extension/ to be an unpacked Chromium extension. The directory is gitignored — devs populate it locally by copying from their Chrome install. CI had nothing there, so chromium hung trying to --load-extension a missing path and every test timed out at 180s on browser launch. Build from source against tag 5.39.0 (matches what's installed locally right now) and cache the build dir keyed on the tag, so subsequent runs skip the ~3-5min yarn build. Pinning (rather than "latest") keeps a Freighter release from silently breaking invite-gate. --- .github/workflows/invite-gate-reusable.yml | 30 ++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/.github/workflows/invite-gate-reusable.yml b/.github/workflows/invite-gate-reusable.yml index 2900e0a..481be08 100644 --- a/.github/workflows/invite-gate-reusable.yml +++ b/.github/workflows/invite-gate-reusable.yml @@ -96,6 +96,36 @@ jobs: token: ${{ secrets.E2E_TRIGGER_TOKEN }} path: pay-platform + # The Freighter extension is loaded into Chromium via --load-extension at + # ./playwright/freighter-extension. The directory is gitignored — devs copy + # it from their local Chrome install. CI has no such copy, so we build it + # from stellar/freighter at a pinned tag. Pin (rather than "latest") so a + # Freighter release can't break invite-gate without an explicit bump here. + - name: Cache Freighter extension build + id: freighter-cache + uses: actions/cache@v4 + with: + path: playwright/freighter-extension + key: freighter-extension-5.39.0-v1 + + - name: Setup Node (for Freighter build) + if: steps.freighter-cache.outputs.cache-hit != 'true' + uses: actions/setup-node@v4 + with: + node-version: "20" + + - name: Build Freighter extension (pinned 5.39.0) + if: steps.freighter-cache.outputs.cache-hit != 'true' + run: | + set -e + git clone --depth 1 --branch 5.39.0 https://github.com/stellar/freighter.git /tmp/freighter + cd /tmp/freighter + yarn install --frozen-lockfile + yarn build:freighter-api + yarn build:extension:production + mkdir -p "$GITHUB_WORKSPACE/playwright/freighter-extension" + cp -r extension/build/. "$GITHUB_WORKSPACE/playwright/freighter-extension/" + - name: Run invite-gate tests env: PROVIDER_CONSOLE_PATH: ./provider-console From 8e55fe5c46c6107a7266cc9103e123ace0d76877 Mon Sep 17 00:00:00 2001 From: Gorka Date: Thu, 7 May 2026 16:01:01 -0300 Subject: [PATCH 3/3] fix(invite-gate): enable corepack so Freighter gets yarn 4 Freighter pins "packageManager": "yarn@4.10.0", and `yarn install` errors out against the runner's global yarn 1.22.22. corepack enable activates the pinned version. Also switch --frozen-lockfile to --immutable (yarn 4 spelling). --- .github/workflows/invite-gate-reusable.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/invite-gate-reusable.yml b/.github/workflows/invite-gate-reusable.yml index 481be08..b25c87e 100644 --- a/.github/workflows/invite-gate-reusable.yml +++ b/.github/workflows/invite-gate-reusable.yml @@ -120,7 +120,10 @@ jobs: set -e git clone --depth 1 --branch 5.39.0 https://github.com/stellar/freighter.git /tmp/freighter cd /tmp/freighter - yarn install --frozen-lockfile + # Freighter pins yarn 4 via packageManager — enable corepack so the + # right version is used instead of the runner's global yarn 1.x. + corepack enable + yarn install --immutable yarn build:freighter-api yarn build:extension:production mkdir -p "$GITHUB_WORKSPACE/playwright/freighter-extension"