diff --git a/actions/example-workflow-call-expansion/.forgejo/workflows/reusable-layer-1.yml b/actions/example-workflow-call-expansion/.forgejo/workflows/reusable-layer-1.yml new file mode 100644 index 00000000..bc0b7dc9 --- /dev/null +++ b/actions/example-workflow-call-expansion/.forgejo/workflows/reusable-layer-1.yml @@ -0,0 +1,49 @@ +on: + workflow_call: + outputs: + output1: + value: ${{ jobs.callee-1.outputs.job-output }} + output2: + value: ${{ jobs.callee-2.outputs.job-output }} + output3: + value: ${{ jobs.layer-2.outputs.output3 }} + output4: + value: ${{ jobs.layer-2.outputs.output4 }} + +jobs: + callee-1: + runs-on: docker + outputs: + job-output: callee-1-output + container: + image: data.forgejo.org/oci/node:22-bookworm + volumes: + - /srv/example:/srv/example + steps: + - name: indicate callee-1 hit + run: touch /srv/example/callee-1 + + layer-2: + uses: ./.forgejo/workflows/reusable-layer-2.yml + + callee-2: + needs: [callee-1, layer-2] + runs-on: docker + outputs: + job-output: callee-2-output + container: + image: data.forgejo.org/oci/node:22-bookworm + volumes: + - /srv/example:/srv/example + steps: + - name: verify callee-1 completed + run: | + set -x + test -f /srv/example/callee-1 + - name: verify layer-2 completed + run: | + set -x + test -f /srv/example/callee-3 + test -f /srv/example/callee-4 + - name: indicate callee-2 hit + run: touch /srv/example/callee-2 diff --git a/actions/example-workflow-call-expansion/.forgejo/workflows/reusable-layer-2.yml b/actions/example-workflow-call-expansion/.forgejo/workflows/reusable-layer-2.yml new file mode 100644 index 00000000..1633ff7c --- /dev/null +++ b/actions/example-workflow-call-expansion/.forgejo/workflows/reusable-layer-2.yml @@ -0,0 +1,37 @@ +on: + workflow_call: + outputs: + output3: + value: ${{ jobs.callee-3.outputs.job-output }} + output4: + value: ${{ jobs.callee-4.outputs.job-output }} + +jobs: + callee-3: + runs-on: docker + outputs: + job-output: callee-3-output + container: + image: data.forgejo.org/oci/node:22-bookworm + volumes: + - /srv/example:/srv/example + steps: + - name: indicate callee-3 hit + run: touch /srv/example/callee-3 + + callee-4: + needs: callee-3 + runs-on: docker + outputs: + job-output: callee-4-output + container: + image: data.forgejo.org/oci/node:22-bookworm + volumes: + - /srv/example:/srv/example + steps: + - name: verify callee-3 completed + run: | + set -x + test -f /srv/example/callee-3 + - name: indicate callee-4 hit + run: touch /srv/example/callee-4 diff --git a/actions/example-workflow-call-expansion/.forgejo/workflows/reusable.yml b/actions/example-workflow-call-expansion/.forgejo/workflows/reusable.yml deleted file mode 100644 index b5bcdde4..00000000 --- a/actions/example-workflow-call-expansion/.forgejo/workflows/reusable.yml +++ /dev/null @@ -1,28 +0,0 @@ -on: - workflow_call: - -jobs: - callee-1: - runs-on: docker - container: - image: data.forgejo.org/oci/node:22-bookworm - volumes: - - /srv/example:/srv/example - steps: - - name: indicate callee-1 hit - run: touch /srv/example/callee-1 - - callee-2: - needs: callee-1 - runs-on: docker - container: - image: data.forgejo.org/oci/node:22-bookworm - volumes: - - /srv/example:/srv/example - steps: - - name: verify callee-1 completed - run: | - set -x - test -f /srv/example/callee-1 - - name: indicate callee-2 hit - run: touch /srv/example/callee-2 diff --git a/actions/example-workflow-call-expansion/.forgejo/workflows/test.yml b/actions/example-workflow-call-expansion/.forgejo/workflows/test.yml index 484cdc29..564475ec 100644 --- a/actions/example-workflow-call-expansion/.forgejo/workflows/test.yml +++ b/actions/example-workflow-call-expansion/.forgejo/workflows/test.yml @@ -2,19 +2,28 @@ on: push: jobs: - caller: - uses: ./.forgejo/workflows/reusable.yml + layer-1: + uses: ./.forgejo/workflows/reusable-layer-1.yml verify: - needs: [caller] + needs: [layer-1] runs-on: docker container: image: data.forgejo.org/oci/node:22-bookworm volumes: - /srv/example:/srv/example steps: - - name: verify callee-1 & callee-2 completed + - name: verify callee-[0-4] completed run: | set -x test -f /srv/example/callee-1 test -f /srv/example/callee-2 + test -f /srv/example/callee-3 + test -f /srv/example/callee-4 + - name: verify workflow outputs + run: | + set -x + test "callee-1-output" = "${{ needs.layer-1.outputs.output1 }}" + test "callee-2-output" = "${{ needs.layer-1.outputs.output2 }}" + test "callee-3-output" = "${{ needs.layer-1.outputs.output3 }}" + test "callee-4-output" = "${{ needs.layer-1.outputs.output4 }}"