From d5f33222b649a1626e79cff931e99ffea67f2136 Mon Sep 17 00:00:00 2001 From: Yuanhao Ji Date: Fri, 13 Sep 2024 10:49:20 +0800 Subject: [PATCH] Allow passing multi-line files Signed-off-by: Yuanhao Ji --- .github/workflows/ci-subaction.yml | 28 ++++++++++++++++++++++++---- subaction/list-targets/action.yml | 2 +- test/multi-files/docker-bake.hcl | 15 +++++++++++++++ test/multi-files/docker-bake.json | 14 ++++++++++++++ 4 files changed, 54 insertions(+), 5 deletions(-) create mode 100644 test/multi-files/docker-bake.hcl create mode 100644 test/multi-files/docker-bake.json diff --git a/.github/workflows/ci-subaction.yml b/.github/workflows/ci-subaction.yml index 0a9e85a..b36990f 100644 --- a/.github/workflows/ci-subaction.yml +++ b/.github/workflows/ci-subaction.yml @@ -38,9 +38,9 @@ jobs: with: workdir: ./test/group - - name: Show matrix + name: Show targets run: | - echo matrix=${{ steps.gen.outputs.matrix }} + echo targets=${{ steps.gen.outputs.targets }} list-targets-group-matrix: runs-on: ubuntu-latest @@ -56,6 +56,26 @@ jobs: workdir: ./test/group-matrix target: validate - - name: Show matrix + name: Show targets run: | - echo matrix=${{ steps.gen.outputs.matrix }} + echo targets=${{ steps.gen.outputs.targets }} + + list-targets-multi-files: + runs-on: ubuntu-latest + steps: + - + name: Checkout + uses: actions/checkout@v4 + - + name: Matrix gen + id: gen + uses: ./subaction/list-targets + with: + workdir: ./test/multi-files + files: | + docker-bake.json + docker-bake.hcl + - + name: Show targets + run: | + echo targets=${{ steps.gen.outputs.targets }} diff --git a/subaction/list-targets/action.yml b/subaction/list-targets/action.yml index 1f9d02e..0aa48e2 100644 --- a/subaction/list-targets/action.yml +++ b/subaction/list-targets/action.yml @@ -29,7 +29,7 @@ runs: with: script: | let def; - const files = `${{ inputs.files }}` ? `${{ inputs.files }}`.split(',') : []; + const files = `${{ inputs.files }}` ? `${{ inputs.files }}`.split(/[\r?\n,]+/).filter(Boolean) : []; const target = `${{ inputs.target }}`; await core.group(`Validating definition`, async () => { diff --git a/test/multi-files/docker-bake.hcl b/test/multi-files/docker-bake.hcl new file mode 100644 index 0000000..be746a4 --- /dev/null +++ b/test/multi-files/docker-bake.hcl @@ -0,0 +1,15 @@ +group "default" { + targets = ["t3"] +} + +target "t3" { + name = "${item.tag}" + matrix = { + item = t3 + } + args = { + VERSION = "${item.version}" + DUMMY_ARG = "${item.arg}" + } + tags = ["${item.tag}"] +} diff --git a/test/multi-files/docker-bake.json b/test/multi-files/docker-bake.json new file mode 100644 index 0000000..d188bfa --- /dev/null +++ b/test/multi-files/docker-bake.json @@ -0,0 +1,14 @@ +{ + "t3": [ + { + "version": "v1", + "arg": "v1-value", + "tag": "v1-tag" + }, + { + "version": "v2", + "arg": "v2-value", + "tag": "v2-tag" + } + ] +} \ No newline at end of file