open-swe/infra/jest.config.js

10 lines
213 B
JavaScript
Raw Normal View History

ci: path-filtered infra CI/CD + dual OIDC roles + prod approval gate (T18) (#15) * ci: path-filtered infra CI/CD with dual OIDC roles + prod approval gate (T18) Add the /infra half of the combined-repo pipeline (the Python agent keeps ci.yml): - ci-infra.yml — PR check on infra/** : tsc + jest + cdk synth via the org reusable ci-typescript-cdk.yaml (working-directory: infra). - cd-infra.yml — push to dev/main on infra/** (or dispatch): * job 'ci' (reusable) is the CI-green precondition (deploy needs: ci). * deploy-dev (ref=dev, NO environment) → cdk deploy OpenSweDevStack, assuming githubdeploy-open-swe-infra-dev (OIDC sub ref:refs/heads/dev). AUTO. * deploy-prod (ref=main, environment: prod) → cdk deploy OpenSweProdStack, assuming githubdeploy-open-swe-infra-prod (OIDC sub environment:prod). The 'prod' Environment's required reviewer is the manual-approval gate. Deliberately self-contained (NOT the reusable cd-cdk.yaml) because that runs 'cdk deploy --all' — from a single-env push it would deploy the other env + the shared IAM stack, breaking the per-env boundary. CD targets one stack per env; the shared open-swe-iam stack is human-gated (T6), never deployed by CD. Infra CI is enforced at the DEPLOY boundary (deploy jobs need ci), not as a branch-protection required check — path-filtering a required check would deadlock app-only PRs. Documented in infra/README.md along with the post-T6 prerequisites (repo vars AWS_DEPLOY_ROLE_INFRA_{DEV,PROD}; a 'prod' Environment w/ reviewer). Not active until the IAM roles are applied (T6) — assuming a nonexistent role just fails closed. App-side CD (S3 artifact + SSM) is T19. * fix(infra): commit jest.config.js (was ignored by *.js → infra CI used Babel) The infra/.gitignore *.js rule (for compiled CDK output) silently swept up the hand-authored jest.config.js, so it was never committed. Local jest passed (file present in the working tree) but CI's fresh checkout lacked it → jest fell back to the default Babel transform → 'Cannot use import statement outside a module' on the TypeScript test. Surfaced now because T18 is the first workflow to run infra jest in CI. Negate the ignore for this one file and commit it.
2026-06-26 16:11:22 -04:00
module.exports = {
testEnvironment: "node",
roots: ["<rootDir>/test"],
testMatch: ["**/*.test.ts"],
preset: "ts-jest",
transform: {
"^.+\\.tsx?$": ["ts-jest", { tsconfig: "tsconfig.json" }],
},
};