Add support for composite actions (#514)

* Add support for composite actions

* Fix to make more complex composite actions work

* Fix to make more complex composite actions work

* Let's validate the steps in the composite steps to fail on uses and run's without shell, like the real world

* Add support for composite actions

* Add workflow to test composite actions

* Log instead of panicing when output is mismatched

* Merge maps so environment variables are not lost

* Remove Debug

* Correect merge error

* Remove invalid composite tests.

* Fix composite test

Co-authored-by: Casey Lee <cplee@nektos.com>
Co-authored-by: monkers <mikem@msquaredconsulting.co.uk>
Co-authored-by: Mike Moncrieffe <69815687+mikemonkers@users.noreply.github.com>
This commit is contained in:
Mark DeLillo
2021-04-02 16:40:44 -04:00
committed by GitHub
parent 94d736a602
commit b9a7bc6202
11 changed files with 236 additions and 16 deletions

22
.github/actions/composite/action.yml vendored Normal file
View File

@@ -0,0 +1,22 @@
name: 'Test Composite Action'
description: 'Test Composite Action'
inputs:
input:
description: 'String to echo'
required: true
default: 'Hello World'
outputs:
output:
description: 'Output string'
value: ${{ steps.set-output.outputs.string }}
runs:
using: "composite"
steps:
- run: echo Hello ${{ inputs.input }}.
shell: bash
- id: set-output
run: echo "::set-output name=string::output string"
shell: bash
- run: |
${{ github.action_path }}/script.sh
shell: bash

1
.github/actions/composite/script.sh vendored Executable file
View File

@@ -0,0 +1 @@
echo "Output from script"

25
.github/workflows/test-composite.yml vendored Normal file
View File

@@ -0,0 +1,25 @@
name: "Test composite actions"
on: push
env:
ACT: true
jobs:
test-composite-actions:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: "✅ I should echo default 'Hello World'"
id: step0
uses: ./.github/actions/composite
- name: "Check action output"
if: steps.step0.outputs.output != 'output string'
run: echo "expected output to be 'output string' but it wasn't"
- name: "✅ I should echo 'Test string'"
id: step1
uses: ./.github/actions/composite
with:
input: 'Test string'