Skip to content

Commit fc62d3e

Browse files
committed
Pass action inputs through env vars and shell arrays so paths with spaces stay intact and user-provided values are not evaluated by bash.
1 parent d05186b commit fc62d3e

1 file changed

Lines changed: 16 additions & 10 deletions

File tree

action.yaml

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -58,26 +58,32 @@ runs:
5858
fileName: "schedule.json"
5959
- name: Run update script
6060
shell: bash
61+
env:
62+
PROJECT_FILE_NAME: ${{ inputs.project_file_name }}
63+
SCHEDULE_INPUT: ${{ inputs.schedule_path }}
64+
UPDATE_ALL: ${{ inputs.update_all }}
6165
run: |
6266
set -e
63-
if [ -n "${{ inputs.schedule_path }}" ]; then
64-
SCHEDULE_PATH="${{ github.workspace }}/${{ inputs.schedule_path }}"
67+
if [ -n "$SCHEDULE_INPUT" ]; then
68+
SCHEDULE_PATH="${GITHUB_WORKSPACE}/${SCHEDULE_INPUT}"
6569
else
66-
SCHEDULE_PATH="${{ github.workspace }}/schedule.json"
70+
SCHEDULE_PATH="${GITHUB_WORKSPACE}/schedule.json"
6771
fi
68-
echo "Updating ${{ inputs.project_file_name }} using schedule $SCHEDULE_PATH"
69-
UPDATE_ALL_FLAG=""
70-
if [ -n "${{ inputs.update_all }}" ]; then
71-
UPDATE_ALL_FLAG="--update-all ${{ inputs.update_all }}"
72+
echo "Updating ${PROJECT_FILE_NAME} using schedule ${SCHEDULE_PATH}"
73+
UPDATE_ALL_ARGS=()
74+
if [ -n "$UPDATE_ALL" ]; then
75+
UPDATE_ALL_ARGS=(--update-all "$UPDATE_ALL")
7276
fi
73-
pixi run --manifest-path ${{ github.action_path }}/pyproject.toml update-dependencies "${{ github.workspace }}/${{ inputs.project_file_name }}" "$SCHEDULE_PATH" $UPDATE_ALL_FLAG
77+
pixi run --manifest-path "${GITHUB_ACTION_PATH}/pyproject.toml" update-dependencies "${GITHUB_WORKSPACE}/${PROJECT_FILE_NAME}" "$SCHEDULE_PATH" "${UPDATE_ALL_ARGS[@]}"
7478
- name: Changes
7579
id: changes
7680
shell: bash
81+
env:
82+
PROJECT_FILE_NAME: ${{ inputs.project_file_name }}
7783
run: |
7884
echo "Showing changes that would be committed"
79-
git --no-pager diff ${{ inputs.project_file_name }}
80-
if git diff --quiet ${{ inputs.project_file_name }}; then
85+
git --no-pager diff -- "$PROJECT_FILE_NAME"
86+
if git diff --quiet -- "$PROJECT_FILE_NAME"; then
8187
echo "changes_detected=false" >> "$GITHUB_OUTPUT"
8288
else
8389
echo "changes_detected=true" >> "$GITHUB_OUTPUT"

0 commit comments

Comments
 (0)