Allow workflow calls are available in matrix jobs. See the official announcement for more details. (#197)
jobs:
ReusableMatrixJobForDeployment:
strategy:
matrix:
target: [dev, stage, prod]
uses: octocat/octo-repo/.github/workflows/deployment.yml@main
with:
target: ${{ matrix.target }}
Allow nested workflow calls. See the official announcement for more details. (#201)
on: workflow_call
jobs:
call-another-reusable:
uses: path/to/another-reusable.yml@v1
Fix job outputs should be passed to needs.*.outputs of only direct children. Until v1.6.16, they are passed to any downstream jobs. (#151)
jobs:
first:
runs-on: ubuntu-latest
outputs:
first: 'output from first job'
steps:
- run: echo 'first'
second:
needs: [first]
runs-on: ubuntu-latest
outputs:
second: 'output from second job'
steps:
- run: echo 'second'
third:
needs: [second]
runs-on: ubuntu-latest
steps:
- run: echo '${{ toJSON(needs.second.outputs) }}'
# ERROR: `needs.first` does not exist, but v1.6.16 reported no error
- run: echo '${{ toJSON(needs.first.outputs) }}'
When you need both needs.first and needs.second, add the both to needs:.
third:
needs: [first, second]
runs-on: ubuntu-latest
steps:
# OK
- echo '${{ toJSON(needs.first.outputs) }}'
Fix }} in string literals are detected as end marker of placeholder ${{ }}. (#205)
jobs:
test:
runs-on: ubuntu-latest
strategy:
# This caused an incorrect error until v1.6.16
matrix: ${{ fromJSON('{"foo":{}}') }}
Fix working-directory: should not be available with uses: in steps. working-directory: is only available with run:. (#207)
steps:
- uses: actions/checkout@v3
# ERROR: `working-directory:` is not available here
working-directory: ./foo