name: fxa-run-functional-tests description: Approves the on-hold "Approve Functional Tests (PR)" CircleCI job for the current PR branch, kicking off the gated Playwright functional tests. Requires CIRCLECI_TOKEN in the environment. allowed-tools: Bash user-invocable: true context: inherit
Run Functional Tests
Functional (Playwright) tests for PRs are gated in CircleCI behind a manual approval job (Approve Functional Tests (PR) in the test_pull_request workflow). This skill approves that job for the current branch's latest pipeline so the tests start running against the already-built workspace.
Steps
Determine the current branch:
git rev-parse --abbrev-ref HEADIf the branch is
mainorHEAD(detached), stop and tell the user functional tests are only gated on PR branches.Confirm a CircleCI token is set in the environment — the script reads
CIRCLECI_TOKEN, falling back toCIRCLECI_CLI_TOKEN:[[ -n "${CIRCLECI_TOKEN:-${CIRCLECI_CLI_TOKEN:-}}" ]] && echo set || echo missingIf missing, instruct the user to export a personal API token (project tokens don't work for v2 approvals):
Get one at https://app.circleci.com/settings/user/tokens, then
export CIRCLECI_TOKEN=...and retry.Run the approval script from the repo root:
./_scripts/approve-functional-tests.shReport the result to the user:
- On success, share the pipeline URL printed by the script.
- If the script prints "Functional tests not on hold yet" (either "workflow not visible" or "approval job not visible"), relay that and suggest waiting a moment for CI to expand the workflow, then retrying.
- If the script prints "Build (PR) hasn't finished yet", the gating build is still running — suggest waiting for it before retrying.
- If the script reports the approval was already given, share the pipeline URL so the user can watch progress.
- If the script errors with a SHA mismatch (latest pipeline is for an older commit), relay that — the user likely just pushed and CircleCI hasn't created the new pipeline yet. Suggest retrying in a few seconds.
Notes
- The script targets the most recent pipeline on the branch and refuses to approve it if its commit doesn't match the local branch tip — that prevents accidentally approving a stale pipeline when a newer commit has just been pushed.
- The approval becomes available as soon as Build (PR) completes and the workflow expands, but if you try to approve before that happens you'll get a "Functional tests not on hold" message. Just wait a moment for CI to catch up and try again.
- Stale runs are cancelled automatically by the project-level "auto-cancel redundant workflows" setting in CircleCI.