Skip to content

fix(deps): update external major (major) #540

fix(deps): update external major (major)

fix(deps): update external major (major) #540

name: Project Engine Mock E2E
# Standalone, path-gated workflow for @adobe/spacecat-shared-project-engine-client.
#
# Deliberately NOT part of main.yaml: that workflow carries the npm Trusted Publisher binding
# and runs on every push to every branch, so it cannot use an `on.paths` filter (it would gate
# `test` and `release` too). A dedicated workflow CAN filter at the trigger level, so the
# Counterfact boot cost is only paid when this package actually changes — no merge-base
# detection job required.
#
# This is additional signal, not a release gate. It never publishes (no id-token, no npm auth),
# so it is independent of main.yaml's release job.
permissions: {}
on:
# Also run post-merge on main: the type-surface check + live E2E are not in main.yaml, so without
# this a regression that lands on main (e.g. a rebase/merge resolution) would sit unseen until the
# next PR that touches the package. Same path filter, so it only runs when this package changes.
push:
branches: [main]
paths:
- 'packages/spacecat-shared-project-engine-client/**'
- '.github/workflows/project-engine-mock-e2e.yaml'
pull_request:
paths:
- 'packages/spacecat-shared-project-engine-client/**'
- '.github/workflows/project-engine-mock-e2e.yaml'
workflow_dispatch:
# One run per PR branch; cancel superseded runs.
concurrency:
group: project-engine-mock-e2e-${{ github.ref }}
cancel-in-progress: true
jobs:
e2e-project-engine-mock:
# Two checks for @adobe/spacecat-shared-project-engine-client that the unit `test` job
# (in main.yaml) can't cover:
# 1. Type surface check — tsc-only guard that the public type surface stays assignable
# to Client<paths> and never degrades to `any` (the package's deliverable).
# 2. Live-server E2E — boots the stateful Counterfact mock and drives it through the
# real client. Gated by MOCK_E2E so it never runs in the default `npm test`.
name: E2E (project-engine mock)
runs-on: ubuntu-latest
# Defense-in-depth against a wedged runner (npm ci hang, transpile deadlock, a Counterfact
# child that ignores SIGTERM): the in-test budgets bound the suite, this bounds the job.
timeout-minutes: 15
permissions:
contents: read
steps:
- name: Check out
uses: actions/checkout@v7
with:
persist-credentials: 'false'
- name: Setup Node & NPM
uses: ./.github/actions/setup-node-npm
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
env:
MYSTICAT_DATA_SERVICE_REPO_READ_TOKEN: ${{ secrets.MYSTICAT_DATA_SERVICE_REPO_READ_TOKEN }}
- name: Type surface check
# Guards the package's deliverable: the public type surface (hand-written index.d.ts)
# must stay assignable to Client<paths> and not silently degrade to `any`. tsc-only,
# no server. See test/types/index.type-test.ts.
run: npm run test:types -w @adobe/spacecat-shared-project-engine-client
- name: Generate corrected OAS3 artifact
# build/openapi3.json is gitignored; the mock runner requires it.
# Only the conversion + overlay steps are needed here — generate:ts and
# generate:pydantic produce committed artifacts and require Python.
run: |
npm run spec:convert -w @adobe/spacecat-shared-project-engine-client
npm run spec:overlay -w @adobe/spacecat-shared-project-engine-client
- name: Project Engine mock E2E
run: npm run test:e2e -w @adobe/spacecat-shared-project-engine-client
env:
MOCK_E2E: '1'