Skip to content

Commit 2cf5b6f

Browse files
authored
Use intermediate environment variable in actions (#134)
1 parent cc15431 commit 2cf5b6f

File tree

4 files changed

+76
-40
lines changed

4 files changed

+76
-40
lines changed

.github/workflows/build-neuron-jax-training-dlc.yaml

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -32,30 +32,37 @@ jobs:
3232

3333
- name: Detect changed versions
3434
id: changes
35+
env:
36+
EVENT_NAME: ${{ github.event_name }}
37+
JAX_VERSIONS: ${{ github.event.inputs.jax_versions }}
38+
BASE_REF: ${{ github.base_ref }}
39+
SHA: ${{ github.sha }}
3540
run: |
36-
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
37-
# Use manual input versions
38-
versions="${{ github.event.inputs.jax_versions }}"
41+
if [ "$EVENT_NAME" = "workflow_dispatch" ]; then
42+
# Use manual input versions with validation
3943
matrix_json="[]"
40-
IFS=',' read -ra VERSION_ARRAY <<< "$versions"
44+
IFS=',' read -ra VERSION_ARRAY <<< "$JAX_VERSIONS"
4145
for version in "${VERSION_ARRAY[@]}"; do
4246
version=$(echo "$version" | xargs) # trim whitespace
43-
path="docker/jax/training/$version"
44-
if [ -f "$path/Dockerfile.neuronx" ]; then
45-
matrix_json=$(echo "$matrix_json" | jq ". + [{\"version\": \"$version\", \"path\": \"$path\"}]")
47+
# Validate version format (only allow alphanumeric, dots, and hyphens)
48+
if [[ "$version" =~ ^[a-zA-Z0-9.-]+$ ]]; then
49+
path="docker/jax/training/$version"
50+
if [ -f "$path/Dockerfile.neuronx" ]; then
51+
matrix_json=$(echo "$matrix_json" | jq --arg v "$version" --arg p "$path" '. + [{"version": $v, "path": $p}]')
52+
fi
4653
fi
4754
done
4855
else
4956
# Detect changed Dockerfile paths
50-
changed_paths=$(git diff --name-only origin/${{ github.base_ref }} ${{ github.sha }} \
57+
changed_paths=$(git diff --name-only "origin/$BASE_REF" "$SHA" \
5158
| grep '^docker/jax/training/.*/Dockerfile.neuronx$' \
5259
| xargs -n1 dirname \
5360
| sort -u)
5461
5562
matrix_json="[]"
5663
for path in $changed_paths; do
5764
version=$(basename "$path")
58-
matrix_json=$(echo "$matrix_json" | jq ". + [{\"version\": \"$version\", \"path\": \"$path\"}]")
65+
matrix_json=$(echo "$matrix_json" | jq --arg v "$version" --arg p "$path" '. + [{"version": $v, "path": $p}]')
5966
done
6067
fi
6168
@@ -86,8 +93,10 @@ jobs:
8693
uses: actions/checkout@v5
8794

8895
- name: Copy common files next to Dockerfile
96+
env:
97+
MATRIX_PATH: ${{ matrix.path }}
8998
run: |
90-
cp -r docker/common/* ${{ matrix.path }}/
99+
cp -r docker/common/* "$MATRIX_PATH"/
91100
92101
- name: Set up Docker Buildx
93102
uses: docker/setup-buildx-action@v3

.github/workflows/build-neuron-pytorch-inference-dlc.yaml

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -32,30 +32,37 @@ jobs:
3232

3333
- name: Detect changed versions
3434
id: changes
35+
env:
36+
EVENT_NAME: ${{ github.event_name }}
37+
PYTORCH_VERSIONS: ${{ github.event.inputs.pytorch_versions }}
38+
BASE_REF: ${{ github.base_ref }}
39+
SHA: ${{ github.sha }}
3540
run: |
36-
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
37-
# Use manual input versions
38-
versions="${{ github.event.inputs.pytorch_versions }}"
41+
if [ "$EVENT_NAME" = "workflow_dispatch" ]; then
42+
# Use manual input versions with validation
3943
matrix_json="[]"
40-
IFS=',' read -ra VERSION_ARRAY <<< "$versions"
44+
IFS=',' read -ra VERSION_ARRAY <<< "$PYTORCH_VERSIONS"
4145
for version in "${VERSION_ARRAY[@]}"; do
4246
version=$(echo "$version" | xargs) # trim whitespace
43-
path="docker/pytorch/inference/$version"
44-
if [ -f "$path/Dockerfile.neuronx" ]; then
45-
matrix_json=$(echo "$matrix_json" | jq ". + [{\"version\": \"$version\", \"path\": \"$path\"}]")
47+
# Validate version format (only allow alphanumeric, dots, and hyphens)
48+
if [[ "$version" =~ ^[a-zA-Z0-9.-]+$ ]]; then
49+
path="docker/pytorch/inference/$version"
50+
if [ -f "$path/Dockerfile.neuronx" ]; then
51+
matrix_json=$(echo "$matrix_json" | jq --arg v "$version" --arg p "$path" '. + [{"version": $v, "path": $p}]')
52+
fi
4653
fi
4754
done
4855
else
4956
# Detect changed Dockerfile paths
50-
changed_paths=$(git diff --name-only origin/${{ github.base_ref }} ${{ github.sha }} \
57+
changed_paths=$(git diff --name-only "origin/$BASE_REF" "$SHA" \
5158
| grep '^docker/pytorch/inference/.*/Dockerfile.neuronx$' \
5259
| xargs -n1 dirname \
5360
| sort -u)
5461
5562
matrix_json="[]"
5663
for path in $changed_paths; do
5764
version=$(basename "$path")
58-
matrix_json=$(echo "$matrix_json" | jq ". + [{\"version\": \"$version\", \"path\": \"$path\"}]")
65+
matrix_json=$(echo "$matrix_json" | jq --arg v "$version" --arg p "$path" '. + [{"version": $v, "path": $p}]')
5966
done
6067
fi
6168
@@ -86,8 +93,10 @@ jobs:
8693
uses: actions/checkout@v5
8794

8895
- name: Copy common files next to Dockerfile
96+
env:
97+
MATRIX_PATH: ${{ matrix.path }}
8998
run: |
90-
cp -r docker/common/* ${{ matrix.path }}/
99+
cp -r docker/common/* "$MATRIX_PATH"/
91100
92101
- name: Set up Docker Buildx
93102
uses: docker/setup-buildx-action@v3

.github/workflows/build-neuron-pytorch-training-dlc.yaml

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -32,30 +32,37 @@ jobs:
3232

3333
- name: Detect changed versions
3434
id: changes
35+
env:
36+
EVENT_NAME: ${{ github.event_name }}
37+
PYTORCH_VERSIONS: ${{ github.event.inputs.pytorch_versions }}
38+
BASE_REF: ${{ github.base_ref }}
39+
SHA: ${{ github.sha }}
3540
run: |
36-
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
37-
# Use manual input versions
38-
versions="${{ github.event.inputs.pytorch_versions }}"
41+
if [ "$EVENT_NAME" = "workflow_dispatch" ]; then
42+
# Use manual input versions with validation
3943
matrix_json="[]"
40-
IFS=',' read -ra VERSION_ARRAY <<< "$versions"
44+
IFS=',' read -ra VERSION_ARRAY <<< "$PYTORCH_VERSIONS"
4145
for version in "${VERSION_ARRAY[@]}"; do
4246
version=$(echo "$version" | xargs) # trim whitespace
43-
path="docker/pytorch/training/$version"
44-
if [ -f "$path/Dockerfile.neuronx" ]; then
45-
matrix_json=$(echo "$matrix_json" | jq ". + [{\"version\": \"$version\", \"path\": \"$path\"}]")
47+
# Validate version format (only allow alphanumeric, dots, and hyphens)
48+
if [[ "$version" =~ ^[a-zA-Z0-9.-]+$ ]]; then
49+
path="docker/pytorch/training/$version"
50+
if [ -f "$path/Dockerfile.neuronx" ]; then
51+
matrix_json=$(echo "$matrix_json" | jq --arg v "$version" --arg p "$path" '. + [{"version": $v, "path": $p}]')
52+
fi
4653
fi
4754
done
4855
else
4956
# Detect changed Dockerfile paths
50-
changed_paths=$(git diff --name-only origin/${{ github.base_ref }} ${{ github.sha }} \
57+
changed_paths=$(git diff --name-only "origin/$BASE_REF" "$SHA" \
5158
| grep '^docker/pytorch/training/.*/Dockerfile.neuronx$' \
5259
| xargs -n1 dirname \
5360
| sort -u)
5461
5562
matrix_json="[]"
5663
for path in $changed_paths; do
5764
version=$(basename "$path")
58-
matrix_json=$(echo "$matrix_json" | jq ". + [{\"version\": \"$version\", \"path\": \"$path\"}]")
65+
matrix_json=$(echo "$matrix_json" | jq --arg v "$version" --arg p "$path" '. + [{"version": $v, "path": $p}]')
5966
done
6067
fi
6168
@@ -86,8 +93,10 @@ jobs:
8693
uses: actions/checkout@v5
8794

8895
- name: Copy common files next to Dockerfile
96+
env:
97+
MATRIX_PATH: ${{ matrix.path }}
8998
run: |
90-
cp -r docker/common/* ${{ matrix.path }}/
99+
cp -r docker/common/* "$MATRIX_PATH"/
91100
92101
- name: Set up Docker Buildx
93102
uses: docker/setup-buildx-action@v3

.github/workflows/build-neuron-vllm-inference-dlc.yaml

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -32,30 +32,37 @@ jobs:
3232

3333
- name: Detect changed versions
3434
id: changes
35+
env:
36+
EVENT_NAME: ${{ github.event_name }}
37+
VLLM_VERSIONS: ${{ github.event.inputs.vllm_versions }}
38+
BASE_REF: ${{ github.base_ref }}
39+
SHA: ${{ github.sha }}
3540
run: |
36-
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
37-
# Use manual input versions
38-
versions="${{ github.event.inputs.vllm_versions }}"
41+
if [ "$EVENT_NAME" = "workflow_dispatch" ]; then
42+
# Use manual input versions with validation
3943
matrix_json="[]"
40-
IFS=',' read -ra VERSION_ARRAY <<< "$versions"
44+
IFS=',' read -ra VERSION_ARRAY <<< "$VLLM_VERSIONS"
4145
for version in "${VERSION_ARRAY[@]}"; do
4246
version=$(echo "$version" | xargs) # trim whitespace
43-
path="docker/vllm/inference/$version"
44-
if [ -f "$path/Dockerfile.neuronx" ]; then
45-
matrix_json=$(echo "$matrix_json" | jq ". + [{\"version\": \"$version\", \"path\": \"$path\"}]")
47+
# Validate version format (only allow alphanumeric, dots, and hyphens)
48+
if [[ "$version" =~ ^[a-zA-Z0-9.-]+$ ]]; then
49+
path="docker/vllm/inference/$version"
50+
if [ -f "$path/Dockerfile.neuronx" ]; then
51+
matrix_json=$(echo "$matrix_json" | jq --arg v "$version" --arg p "$path" '. + [{"version": $v, "path": $p}]')
52+
fi
4653
fi
4754
done
4855
else
4956
# Detect changed Dockerfile paths
50-
changed_paths=$(git diff --name-only origin/${{ github.base_ref }} ${{ github.sha }} \
57+
changed_paths=$(git diff --name-only "origin/$BASE_REF" "$SHA" \
5158
| grep '^docker/vllm/inference/.*/Dockerfile.neuronx$' \
5259
| xargs -n1 dirname \
5360
| sort -u)
5461
5562
matrix_json="[]"
5663
for path in $changed_paths; do
5764
version=$(basename "$path")
58-
matrix_json=$(echo "$matrix_json" | jq ". + [{\"version\": \"$version\", \"path\": \"$path\"}]")
65+
matrix_json=$(echo "$matrix_json" | jq --arg v "$version" --arg p "$path" '. + [{"version": $v, "path": $p}]')
5966
done
6067
fi
6168
@@ -86,8 +93,10 @@ jobs:
8693
uses: actions/checkout@v5
8794

8895
- name: Copy common files next to Dockerfile
96+
env:
97+
MATRIX_PATH: ${{ matrix.path }}
8998
run: |
90-
cp -r docker/common/* ${{ matrix.path }}/
99+
cp -r docker/common/* "$MATRIX_PATH"/
91100
92101
- name: Set up Docker Buildx
93102
uses: docker/setup-buildx-action@v3

0 commit comments

Comments
 (0)