Fix defaults (composite) (#753)
* Fix defaults (composite) * uses-composite: rely on defaults to pass * Add test_input_required back, needs more tests * Update Tests to test defaults carefully
This commit is contained in:
parent
c865a56c5a
commit
149cc19908
4 changed files with 50 additions and 1 deletions
|
@ -403,7 +403,7 @@ func (sc *StepContext) vmInputs() func(*otto.Otto) {
|
||||||
// Set Defaults
|
// Set Defaults
|
||||||
if sc.Action != nil {
|
if sc.Action != nil {
|
||||||
for k, input := range sc.Action.Inputs {
|
for k, input := range sc.Action.Inputs {
|
||||||
inputs[k] = input.Default
|
inputs[k] = sc.RunContext.NewExpressionEvaluator().Interpolate(input.Default)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -591,6 +591,7 @@ func (sc *StepContext) execAsComposite(ctx context.Context, step *model.Step, _
|
||||||
RunContext: rcClone,
|
RunContext: rcClone,
|
||||||
Step: step,
|
Step: step,
|
||||||
Env: mergeMaps(sc.Env, env),
|
Env: mergeMaps(sc.Env, env),
|
||||||
|
Action: action,
|
||||||
}
|
}
|
||||||
|
|
||||||
// Required to set github.action_path
|
// Required to set github.action_path
|
||||||
|
|
|
@ -10,6 +10,18 @@ inputs:
|
||||||
description: "optional defaulted input"
|
description: "optional defaulted input"
|
||||||
required: false
|
required: false
|
||||||
default: "test_input_optional_value"
|
default: "test_input_optional_value"
|
||||||
|
test_input_optional_with_default_overriden:
|
||||||
|
description: "optional defaulted input"
|
||||||
|
required: false
|
||||||
|
default: "test_input_optional_value"
|
||||||
|
test_input_required_with_default:
|
||||||
|
description: "Required with default, due to an old bug of github actions this is allowed"
|
||||||
|
required: true
|
||||||
|
default: "test_input_optional_value"
|
||||||
|
test_input_required_with_default_overriden:
|
||||||
|
description: "Required with default, due to an old bug of github actions this is allowed"
|
||||||
|
required: true
|
||||||
|
default: "test_input_optional_value"
|
||||||
|
|
||||||
outputs:
|
outputs:
|
||||||
test_output:
|
test_output:
|
||||||
|
@ -25,6 +37,9 @@ runs:
|
||||||
echo "---"
|
echo "---"
|
||||||
echo "test_input_required=${{ inputs.test_input_required }}"
|
echo "test_input_required=${{ inputs.test_input_required }}"
|
||||||
echo "test_input_optional=${{ inputs.test_input_optional }}"
|
echo "test_input_optional=${{ inputs.test_input_optional }}"
|
||||||
|
echo "test_input_optional_with_default_overriden=${{ inputs.test_input_optional_with_default_overriden }}"
|
||||||
|
echo "test_input_required_with_default=${{ inputs.test_input_required_with_default }}"
|
||||||
|
echo "test_input_required_with_default_overriden=${{ inputs.test_input_required_with_default_overriden }}"
|
||||||
echo "---"
|
echo "---"
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|
||||||
|
@ -41,6 +56,24 @@ runs:
|
||||||
fi
|
fi
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|
||||||
|
- run: |
|
||||||
|
if [ "${{ inputs.test_input_optional_with_default_overriden }}" != "test_input_optional_with_default_overriden" ]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
shell: bash
|
||||||
|
|
||||||
|
- run: |
|
||||||
|
if [ "${{ inputs.test_input_required_with_default }}" != "test_input_optional_value" ]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
shell: bash
|
||||||
|
|
||||||
|
- run: |
|
||||||
|
if [ "${{ inputs.test_input_required_with_default_overriden }}" != "test_input_required_with_default_overriden" ]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
shell: bash
|
||||||
|
|
||||||
- run: |
|
- run: |
|
||||||
if [ -z "$GITHUB_ACTION_PATH" ]; then
|
if [ -z "$GITHUB_ACTION_PATH" ]; then
|
||||||
exit 1
|
exit 1
|
||||||
|
|
15
pkg/runner/testdata/uses-composite/push.yml
vendored
15
pkg/runner/testdata/uses-composite/push.yml
vendored
|
@ -10,9 +10,24 @@ jobs:
|
||||||
with:
|
with:
|
||||||
test_input_required: 'test_input_required_value'
|
test_input_required: 'test_input_required_value'
|
||||||
test_input_optional: 'test_input_optional_value'
|
test_input_optional: 'test_input_optional_value'
|
||||||
|
test_input_optional_with_default_overriden: 'test_input_optional_with_default_overriden'
|
||||||
|
test_input_required_with_default: 'test_input_optional_value'
|
||||||
|
test_input_required_with_default_overriden: 'test_input_required_with_default_overriden'
|
||||||
|
|
||||||
- if: steps.composite.outputs.test_output != "test_output_value"
|
- if: steps.composite.outputs.test_output != "test_output_value"
|
||||||
run: |
|
run: |
|
||||||
echo "steps.composite.outputs.test_output=${{ steps.composite.outputs.test_output }}"
|
echo "steps.composite.outputs.test_output=${{ steps.composite.outputs.test_output }}"
|
||||||
exit 1
|
exit 1
|
||||||
|
|
||||||
|
# Now test again with default values
|
||||||
|
- uses: ./uses-composite/composite_action
|
||||||
|
id: composite2
|
||||||
|
with:
|
||||||
|
test_input_required: 'test_input_required_value'
|
||||||
|
test_input_optional_with_default_overriden: 'test_input_optional_with_default_overriden'
|
||||||
|
test_input_required_with_default_overriden: 'test_input_required_with_default_overriden'
|
||||||
|
|
||||||
|
- if: steps.composite2.outputs.test_output != "test_output_value"
|
||||||
|
run: |
|
||||||
|
echo "steps.composite.outputs.test_output=${{ steps.composite.outputs.test_output }}"
|
||||||
|
exit 1
|
||||||
|
|
Loading…
Reference in a new issue