From d339f6e306163629a9cf2e0250e2e722ee3259ff Mon Sep 17 00:00:00 2001 From: rhysd Date: Sun, 29 Sep 2024 20:20:07 +0900 Subject: [PATCH] add `download-path` output to `actions/download-artifact@v3` for workaround of (#442) --- popular_actions.go | 3 +++ scripts/generate-popular-actions/main.go | 13 +++++++++++++ testdata/ok/issue-442.yaml | 9 +++++++++ 3 files changed, 25 insertions(+) create mode 100644 testdata/ok/issue-442.yaml diff --git a/popular_actions.go b/popular_actions.go index 196daaf2b..7f011903d 100644 --- a/popular_actions.go +++ b/popular_actions.go @@ -616,6 +616,9 @@ var PopularActions = map[string]*ActionMetadata{ "name": {"name", false}, "path": {"path", false}, }, + Outputs: ActionMetadataOutputs{ + "download-path": {"download-path"}, + }, }, "actions/download-artifact@v4": { Name: "Download a Build Artifact", diff --git a/scripts/generate-popular-actions/main.go b/scripts/generate-popular-actions/main.go index 290aa9c95..46fb2154d 100644 --- a/scripts/generate-popular-actions/main.go +++ b/scripts/generate-popular-actions/main.go @@ -191,6 +191,19 @@ func (g *gen) fetchRemote() (map[string]*actionlint.ActionMetadata, error) { } } + // Workaround for #442. + // Once this issue is fixed or the `download-artifact@v3" is completely obsolete (due to unsupported runner), + // remove this `if` statement and regenerate popular_actions.go. + // https://github.com/actions/download-artifact/issues/355 + if f.spec == "actions/download-artifact@v3" { + if f.meta.Outputs == nil { + f.meta.Outputs = actionlint.ActionMetadataOutputs{} + } + f.meta.Outputs["download-path"] = &actionlint.ActionMetadataOutput{ + Name: "download-path", + } + } + ret[f.spec] = f.meta } diff --git a/testdata/ok/issue-442.yaml b/testdata/ok/issue-442.yaml new file mode 100644 index 000000000..4b6a56672 --- /dev/null +++ b/testdata/ok/issue-442.yaml @@ -0,0 +1,9 @@ +on: push + +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/download-artifact@v3 + id: dl + - run: echo "Download path is ${{ steps.dl.outputs.download-path}}"