Skip to content

Commit c12352a

Browse files
committed
Sanitize PATH after Nix install
Signed-off-by: Nick Sweeting <git@sweeting.me>
1 parent bd45642 commit c12352a

1 file changed

Lines changed: 30 additions & 0 deletions

File tree

.github/workflows/tests.yml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,21 @@ jobs:
200200
- name: Install Nix
201201
uses: DeterminateSystems/nix-installer-action@v22
202202

203+
- name: Sanitize PATH after Nix install
204+
shell: bash
205+
run: |
206+
sanitized_path=""
207+
while IFS= read -r path_entry; do
208+
[ -n "$path_entry" ] || continue
209+
[ -d "$path_entry" ] || continue
210+
[ -x "$path_entry" ] || continue
211+
case ":$sanitized_path:" in
212+
*":$path_entry:"*) ;;
213+
*) sanitized_path="${sanitized_path:+$sanitized_path:}$path_entry" ;;
214+
esac
215+
done < <(printf '%s' "$PATH" | tr ':' '\n')
216+
printf 'PATH=%s\n' "$sanitized_path" >> "$GITHUB_ENV"
217+
203218
- name: Setup venv and install pip dependencies
204219
run: |
205220
export PNPM_HOME="${RUNNER_TEMP}/pnpm"
@@ -412,6 +427,21 @@ jobs:
412427
- name: Install Nix
413428
uses: DeterminateSystems/nix-installer-action@v22
414429

430+
- name: Sanitize PATH after Nix install
431+
shell: bash
432+
run: |
433+
sanitized_path=""
434+
while IFS= read -r path_entry; do
435+
[ -n "$path_entry" ] || continue
436+
[ -d "$path_entry" ] || continue
437+
[ -x "$path_entry" ] || continue
438+
case ":$sanitized_path:" in
439+
*":$path_entry:"*) ;;
440+
*) sanitized_path="${sanitized_path:+$sanitized_path:}$path_entry" ;;
441+
esac
442+
done < <(printf '%s' "$PATH" | tr ':' '\n')
443+
printf 'PATH=%s\n' "$sanitized_path" >> "$GITHUB_ENV"
444+
415445
- name: Setup Docker
416446
if: ${{ matrix.live.needs_docker }}
417447
uses: docker/setup-docker-action@v5.0.0

0 commit comments

Comments
 (0)