1818 required : false
1919 STAGING_MIGRATION_DATABASE_URL :
2020 required : false
21- AWS_ROLE_TO_ASSUME :
22- required : false
23- STAGING_AWS_ROLE_TO_ASSUME :
24- required : false
25- AWS_REGION :
26- required : false
27- STAGING_AWS_REGION :
28- required : false
2921 workflow_dispatch :
3022 inputs :
3123 environment :
3931
4032permissions :
4133 contents : read
42- id-token : write
4334
4435jobs :
4536 migrate :
@@ -60,32 +51,13 @@ jobs:
6051 provider : ${{ vars.CI_PROVIDER }}
6152 node-version : ' '
6253
63- - name : Check Project column expansion and whether enforcement needs rollout evidence
64- id : project-contract
54+ - name : Validate Project migration database prerequisites
6555 if : inputs.environment != 'dev'
6656 working-directory : ./packages/db
6757 env :
6858 DATABASE_URL : ${{ inputs.environment == 'production' && secrets.DATABASE_URL || inputs.environment == 'staging' && secrets.STAGING_DATABASE_URL || '' }}
6959 MIGRATION_DATABASE_URL : ${{ inputs.environment == 'production' && secrets.MIGRATION_DATABASE_URL || inputs.environment == 'staging' && secrets.STAGING_MIGRATION_DATABASE_URL || '' }}
70- run : bun --no-env-file scripts/project-contract-required.ts >> "$GITHUB_OUTPUT"
71-
72- - name : Configure AWS for Project connector retirement verification
73- if : steps.project-contract.outputs.required == 'true'
74- uses : aws-actions/configure-aws-credentials@e7f100cf4c008499ea8adda475de1042d6975c7b
75- with :
76- role-to-assume : ${{ inputs.environment == 'production' && secrets.AWS_ROLE_TO_ASSUME || secrets.STAGING_AWS_ROLE_TO_ASSUME }}
77- aws-region : ${{ inputs.environment == 'production' && secrets.AWS_REGION || secrets.STAGING_AWS_REGION }}
78-
79- # Acknowledge #8830 only after authority-aware readers/writers deploy and all incompatible
80- # servers and relevant old Trigger.dev runs drain. The runner commits the column-authority
81- # switch before backfill, validation, and connector retirement; retries never revert it.
82- # The preflight independently checks ECS retirement; it does not inspect worker runs.
83- - name : Require completed authority-aware rollout before Project cutover
84- if : steps.project-contract.outputs.required == 'true'
85- env :
86- ENVIRONMENT : ${{ inputs.environment }}
87- EXPECTED_IMAGE_DIGEST : ${{ inputs.environment == 'production' && vars.PROJECT_COLUMN_ENFORCEMENT_READY_IMAGE_DIGEST_PRODUCTION || inputs.environment == 'staging' && vars.PROJECT_COLUMN_ENFORCEMENT_READY_IMAGE_DIGEST_STAGING || '' }}
88- run : python3 .github/scripts/check-project-rollout.py --environment "$ENVIRONMENT" --region "$AWS_REGION" --expected-image-digest "$EXPECTED_IMAGE_DIGEST"
60+ run : bun --no-env-file scripts/project-contract-required.ts
8961
9062 # The expression maps the explicit environment input to exactly one repo
9163 # secret, so the job never holds another environment's database URL. An
0 commit comments