9868e13772
* Feature: uses in composite * Negate logic * Reduce complexity * Update step_context.go * Update step_context.go * Update step_context.go * Fix syntax error in test * Bump * Disable usage of actions/setup-node@v2 * Bump * Fix step id collision * Fix output command workaround * Make secrets context inaccessible in composite * Fix order after adding a workaround (needs tests) Fixes https://github.com/nektos/act/pull/793#issuecomment-922329838 * Evaluate env before passing one step deeper If env would contain any inputs, steps ctx or secrets there was undefined behaviour * [no ci] prepare secret test * Initial test pass inputs as env * Fix syntax error * extend test also for direct invoke * Fix passing provided env as composite output * Fix syntax error * toUpper 'no such secret', act has a bug * fix indent * Fix env outputs in composite * Test env outputs of composite * Fix inputs not defined in docker actions * Fix interpolate args input of docker actions * Fix lint * AllowCompositeIf now defaults to true see https://github.com/actions/runner/releases/tag/v2.284.0 * Fix lint * Fix env of docker action.yml * Test calling a local docker action from composite With input context hirachy * local-action-dockerfile Test pass on action/runner It seems action/runner ignores overrides of args, if the target docker action has the args property set. * Fix exec permissions of docker-local-noargs * Revert getStepsContext change * fix: handle composite action on error and continue This change is a follow up of https://github.com/nektos/act/pull/840 and integrates with https://github.com/nektos/act/pull/793 There are two things included here: - The default value for a step.if in an action need to be 'success()' - We need to hand the error from a composite action back to the calling executor Co-authored-by: Björn Brauer <bjoern.brauer@new-work.se> * Patch inputs can be bool, float64 and string for workflow_call Also inputs is now always defined, but may be null * Simplify cherry-picked commit * Minor style adjustments * Remove chmod +x from tests now fails on windows like before * Fix GITHUB_ACTION_PATH some action env vars Fixes GITHUB_ACTION_REPOSITORY, GITHUB_ACTION_REF. * Add comment to CompositeRestrictions Co-authored-by: Markus Wolf <markus.wolf@new-work.se> Co-authored-by: Björn Brauer <bjoern.brauer@new-work.se> Co-authored-by: Ryan <me@hackerc.at> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
96 lines
3 KiB
YAML
96 lines
3 KiB
YAML
---
|
|
name: "Test Composite Action"
|
|
description: "Test action uses composite"
|
|
|
|
inputs:
|
|
test_input_required:
|
|
description: "Required input"
|
|
required: true
|
|
test_input_optional:
|
|
description: "optional defaulted input"
|
|
required: false
|
|
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"
|
|
secret_input:
|
|
description: test pass a secret as input
|
|
outputs:
|
|
test_output:
|
|
description: "Output value to pass up"
|
|
value: ${{ steps.output.outputs.test_output }}
|
|
secret_output:
|
|
description: test pass a secret as output
|
|
value: ${{ format('{0}/{1}', inputs.secret_input, env.secret_input) }}
|
|
|
|
runs:
|
|
using: "composite"
|
|
steps:
|
|
- run: |
|
|
echo "#####################################"
|
|
echo "Inputs:"
|
|
echo "---"
|
|
echo "test_input_required=${{ inputs.test_input_required }}"
|
|
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 "---"
|
|
shell: bash
|
|
|
|
# Let's test the inputs
|
|
- run: |
|
|
if [ "${{ inputs.test_input_required }}" != "test_input_required_value" ]; then
|
|
exit 1
|
|
fi
|
|
shell: bash
|
|
|
|
- run: |
|
|
if [ "${{ inputs.test_input_optional }}" != "test_input_optional_value" ]; then
|
|
exit 1
|
|
fi
|
|
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: |
|
|
if [ -z "$GITHUB_ACTION_PATH" ]; then
|
|
exit 1
|
|
fi
|
|
if [ -z "${{ github.action_path }}" ]; then
|
|
exit 2
|
|
fi
|
|
shell: bash
|
|
|
|
# Let's send up an output to test
|
|
- run: echo "::set-output name=test_output::test_output_value"
|
|
id: output
|
|
shell: bash
|
|
- run: echo "COMPOSITE_ACTION_ENV_OUTPUT=my test value" >> $GITHUB_ENV
|
|
shell: bash
|
|
|