3131 required : false
3232 type : string
3333 default : ci-bot@ndx-try.local
34+ reuse_account_id :
35+ description : |
36+ DEBUG: skip acquire/release; use this already-leased pool account.
37+ Lease the account locally first (`isb assign` then look at
38+ assigned account_id) and paste here. Workflow will assume
39+ CIDeployRole directly. Lease is NOT released — call `isb terminate`
40+ when done. Used during CI iteration to avoid burning pool accounts.
41+ required : false
42+ type : string
43+ default : ' '
3444
3545permissions :
3646 id-token : write
@@ -86,19 +96,27 @@ jobs:
8696
8797 - name : Acquire ISB lease
8898 id : lease
99+ if : inputs.reuse_account_id == ''
89100 run : |
90101 python3 scripts/isb/ci_lease.py acquire \
91102 --template '${{ inputs.lease_template }}' \
92103 --user-email '${{ inputs.ci_lease_email }}'
93104
105+ - name : Use reused lease account
106+ id : reuse
107+ if : inputs.reuse_account_id != ''
108+ run : |
109+ echo "::notice::Reusing already-leased account ${{ inputs.reuse_account_id }} — acquire+release skipped"
110+ echo "account_id=${{ inputs.reuse_account_id }}" >> "$GITHUB_OUTPUT"
111+
94112 # Now assume the in-lease CIDeployRole. role-chaining=true tells
95113 # configure-aws-credentials to sigv4-sign from the already-loaded
96114 # hub creds (sts:AssumeRole) instead of trying OIDC against the
97115 # leased account (which has no OIDC provider).
98116 - uses : aws-actions/configure-aws-credentials@v6
99117 id : lease-creds
100118 with :
101- role-to-assume : arn:aws:iam::${{ steps.lease.outputs.account_id }}:role/InnovationSandbox-ndx-CIDeployRole
119+ role-to-assume : arn:aws:iam::${{ steps.lease.outputs.account_id || steps.reuse.outputs.account_id }}:role/InnovationSandbox-ndx-CIDeployRole
102120 role-session-name : scenario-ci-deploy-${{ github.run_id }}
103121 aws-region : us-east-1
104122 # Chained assumes (sigv4 from already-assumed creds) are capped
@@ -117,7 +135,7 @@ jobs:
117135 env :
118136 SCENARIO : ${{ inputs.scenario }}
119137 TEMPLATE : ${{ steps.paths.outputs.template_path }}
120- ACCOUNT_ID : ${{ steps.lease.outputs.account_id }}
138+ ACCOUNT_ID : ${{ steps.lease.outputs.account_id || steps.reuse.outputs.account_id }}
121139 run : |
122140 set -euo pipefail
123141 STACK_NAME="ndx-try-${SCENARIO}"
0 commit comments