Skip to content

Commit 08f526a

Browse files
committed
Implement per-cluster working directories for job isolation
Changed from shared WORKING_DIR to cluster-specific directories to prevent conflicts when multiple CI jobs run in parallel. Workflow changes: - Renamed WORKING_DIR var to BASE_WORKING_DIR for clarity - After cluster name generation, create cluster-specific directory: ${BASE_WORKING_DIR}/clusters/${ENCLAVE_CLUSTER_NAME} - Set WORKING_DIR to the cluster-specific path - Applied to all 4 workflows (infra-verify, e2e-deployment, nightly x2) Cleanup script changes: - Updated to handle new directory structure - Remove entire cluster-specific working directory - Still clean up shared resources (pool, landing-zone) from BASE_DIR - Backwards compatible with old structure during transition - Enhanced verification to check both old and new structures Benefits: - Full isolation between parallel CI jobs - No conflicts on environment.json or other working files - Cleaner cleanup (remove entire cluster directory) - Easier to debug (all cluster files in one place) Example structure: /opt/dev-scripts/clusters/eci-6fc9fa16/ (isolated per job) /opt/dev-scripts/pool/eci-6fc9fa16/ (shared storage) /opt/dev-scripts/landing-zone/ (shared)
1 parent 8118627 commit 08f526a

4 files changed

Lines changed: 36 additions & 4 deletions

File tree

.github/workflows/e2e-deployment.yml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ jobs:
104104

105105
env:
106106
DEV_SCRIPTS_PATH: ${{ vars.DEV_SCRIPTS_PATH }}
107-
WORKING_DIR: ${{ vars.WORKING_DIR }}
107+
BASE_WORKING_DIR: ${{ vars.BASE_WORKING_DIR }}
108108
PULL_SECRET: ${{ secrets.PULL_SECRET }}
109109
# Use manual input if available, otherwise default to 'connected' for PR runs
110110
ENCLAVE_DEPLOYMENT_MODE: ${{ github.event.inputs.deployment_mode || 'connected' }}
@@ -124,6 +124,14 @@ jobs:
124124
prefix: eci
125125
run-id: ${{ github.run_id }}
126126

127+
- name: Setup cluster-specific working directory
128+
run: |
129+
CLUSTER_WORKING_DIR="${BASE_WORKING_DIR}/clusters/${ENCLAVE_CLUSTER_NAME}"
130+
echo "Creating cluster-specific working directory: $CLUSTER_WORKING_DIR"
131+
mkdir -p "$CLUSTER_WORKING_DIR"
132+
echo "WORKING_DIR=$CLUSTER_WORKING_DIR" >> $GITHUB_ENV
133+
echo "Cluster working directory: $CLUSTER_WORKING_DIR"
134+
127135
- name: Pre-flight checks
128136
uses: ./.github/actions/preflight-checks
129137
with:

.github/workflows/infra-verify.yml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ jobs:
2929

3030
env:
3131
DEV_SCRIPTS_PATH: ${{ vars.DEV_SCRIPTS_PATH }}
32-
WORKING_DIR: ${{ vars.WORKING_DIR }}
32+
BASE_WORKING_DIR: ${{ vars.BASE_WORKING_DIR }}
3333
PULL_SECRET: ${{ secrets.PULL_SECRET }}
3434
# For PR runs: always cleanup to avoid leaving infrastructure
3535
# For manual runs: use input parameter (default: on_failure)
@@ -48,6 +48,14 @@ jobs:
4848
prefix: eci
4949
run-id: ${{ github.run_id }}
5050

51+
- name: Setup cluster-specific working directory
52+
run: |
53+
CLUSTER_WORKING_DIR="${BASE_WORKING_DIR}/clusters/${ENCLAVE_CLUSTER_NAME}"
54+
echo "Creating cluster-specific working directory: $CLUSTER_WORKING_DIR"
55+
mkdir -p "$CLUSTER_WORKING_DIR"
56+
echo "WORKING_DIR=$CLUSTER_WORKING_DIR" >> $GITHUB_ENV
57+
echo "Cluster working directory: $CLUSTER_WORKING_DIR"
58+
5159
- name: Workflow information
5260
env:
5361
PR_TITLE: ${{ github.event.pull_request.title }}

.github/workflows/nightly-e2e-connected.yml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323

2424
env:
2525
DEV_SCRIPTS_PATH: ${{ vars.DEV_SCRIPTS_PATH }}
26-
WORKING_DIR: ${{ vars.WORKING_DIR }}
26+
BASE_WORKING_DIR: ${{ vars.BASE_WORKING_DIR }}
2727
PULL_SECRET: ${{ secrets.PULL_SECRET }}
2828
ENCLAVE_DEPLOYMENT_MODE: connected
2929
CLEANUP_AFTER: 'true'
@@ -39,6 +39,14 @@ jobs:
3939
naming-strategy: date
4040
prefix: nc
4141

42+
- name: Setup cluster-specific working directory
43+
run: |
44+
CLUSTER_WORKING_DIR="${BASE_WORKING_DIR}/clusters/${ENCLAVE_CLUSTER_NAME}"
45+
echo "Creating cluster-specific working directory: $CLUSTER_WORKING_DIR"
46+
mkdir -p "$CLUSTER_WORKING_DIR"
47+
echo "WORKING_DIR=$CLUSTER_WORKING_DIR" >> $GITHUB_ENV
48+
echo "Cluster working directory: $CLUSTER_WORKING_DIR"
49+
4250
- name: Workflow information
4351
run: |
4452
echo "## Nightly E2E Deployment - Connected Mode" >> $GITHUB_STEP_SUMMARY

.github/workflows/nightly-e2e-disconnected.yml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323

2424
env:
2525
DEV_SCRIPTS_PATH: ${{ vars.DEV_SCRIPTS_PATH }}
26-
WORKING_DIR: ${{ vars.WORKING_DIR }}
26+
BASE_WORKING_DIR: ${{ vars.BASE_WORKING_DIR }}
2727
PULL_SECRET: ${{ secrets.PULL_SECRET }}
2828
ENCLAVE_DEPLOYMENT_MODE: disconnected
2929
CLEANUP_AFTER: 'true'
@@ -39,6 +39,14 @@ jobs:
3939
naming-strategy: date
4040
prefix: nd
4141

42+
- name: Setup cluster-specific working directory
43+
run: |
44+
CLUSTER_WORKING_DIR="${BASE_WORKING_DIR}/clusters/${ENCLAVE_CLUSTER_NAME}"
45+
echo "Creating cluster-specific working directory: $CLUSTER_WORKING_DIR"
46+
mkdir -p "$CLUSTER_WORKING_DIR"
47+
echo "WORKING_DIR=$CLUSTER_WORKING_DIR" >> $GITHUB_ENV
48+
echo "Cluster working directory: $CLUSTER_WORKING_DIR"
49+
4250
- name: Workflow information
4351
run: |
4452
echo "## Nightly E2E Deployment - Disconnected Mode" >> $GITHUB_STEP_SUMMARY

0 commit comments

Comments
 (0)