From 80cacdc6364c9d27ba5ddea1be13fa0788e82e1d Mon Sep 17 00:00:00 2001 From: Jon Langevin Date: Mon, 25 May 2026 02:28:16 -0400 Subject: [PATCH] fix(release): wrap goreleaser hooks needing && in sh -c MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Was: hooks with '&&' (rm -rf X && mkdir Y) fail because goreleaser execs each hook as an argv list, not a shell command. '&&' is shell syntax. Now: wrap any hook needing shell features in 'sh -c'. Follow-on fix to #16 (v0.1.4 release failed with: cp: cannot create regular file '/tmp/release-stage/plugin.json': No such file or directory — because the previous rm/mkdir hook failed silently). --- .goreleaser.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.goreleaser.yaml b/.goreleaser.yaml index 3562bb1..3fa7646 100644 --- a/.goreleaser.yaml +++ b/.goreleaser.yaml @@ -2,11 +2,11 @@ version: 2 before: hooks: - - "rm -rf /tmp/release-stage && mkdir -p /tmp/release-stage" + - "sh -c 'rm -rf /tmp/release-stage && mkdir -p /tmp/release-stage'" - "cp plugin.json /tmp/release-stage/plugin.json" - "cp plugin.contracts.json /tmp/release-stage/plugin.contracts.json" - - "sed -i.bak 's/\"version\": \".*\"/\"version\": \"{{ .Version }}\"/' /tmp/release-stage/plugin.json && rm -f /tmp/release-stage/plugin.json.bak" - - "sed -i.bak 's|/releases/download/v[^/]*/|/releases/download/v{{ .Version }}/|g' /tmp/release-stage/plugin.json && rm -f /tmp/release-stage/plugin.json.bak" + - "sh -c \"sed -i.bak 's/\\\"version\\\": \\\".*\\\"/\\\"version\\\": \\\"{{ .Version }}\\\"/' /tmp/release-stage/plugin.json && rm -f /tmp/release-stage/plugin.json.bak\"" + - "sh -c \"sed -i.bak 's|/releases/download/v[^/]*/|/releases/download/v{{ .Version }}/|g' /tmp/release-stage/plugin.json && rm -f /tmp/release-stage/plugin.json.bak\"" - "go run github.com/GoCodeAlone/workflow/cmd/wfctl@v0.51.7 plugin validate --file /tmp/release-stage/plugin.json --strict-contracts" builds: