From 4bac41b13519fe7f9afb17851a0abbe1162f55ca Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sun, 9 Aug 2026 14:27:11 +0100 Subject: [PATCH 1/2] chore: mark release tools as Bash scripts --- flake.nix | 10 +++++----- .../{bump-changelogs.sh => bump-changelogs.bash} | 1 + ...ploaded.sh => comment-release-assets-uploaded.bash} | 1 + .../{comment-release-pr.sh => comment-release-pr.bash} | 1 + release-tools/{test.sh => test.bash} | 4 ++++ ...date-release-notes.sh => update-release-notes.bash} | 1 + 6 files changed, 13 insertions(+), 5 deletions(-) rename release-tools/{bump-changelogs.sh => bump-changelogs.bash} (99%) rename release-tools/{comment-release-assets-uploaded.sh => comment-release-assets-uploaded.bash} (99%) rename release-tools/{comment-release-pr.sh => comment-release-pr.bash} (99%) rename release-tools/{test.sh => test.bash} (98%) rename release-tools/{update-release-notes.sh => update-release-notes.bash} (98%) diff --git a/flake.nix b/flake.nix index 0d67820..111eb0e 100644 --- a/flake.nix +++ b/flake.nix @@ -52,7 +52,7 @@ pkgs.gnused pkgs.jq ]; - text = builtins.readFile ./release-tools/bump-changelogs.sh; + text = builtins.readFile ./release-tools/bump-changelogs.bash; }; x52-update-release-notes = pkgs.writeShellApplication { @@ -64,7 +64,7 @@ pkgs.git pkgs.jq ]; - text = builtins.readFile ./release-tools/update-release-notes.sh; + text = builtins.readFile ./release-tools/update-release-notes.bash; }; x52-comment-release-pr = pkgs.writeShellApplication { @@ -74,7 +74,7 @@ pkgs.gh pkgs.jq ]; - text = builtins.readFile ./release-tools/comment-release-pr.sh; + text = builtins.readFile ./release-tools/comment-release-pr.bash; }; x52-comment-release-assets-uploaded = pkgs.writeShellApplication { @@ -84,7 +84,7 @@ pkgs.gh pkgs.jq ]; - text = builtins.readFile ./release-tools/comment-release-assets-uploaded.sh; + text = builtins.readFile ./release-tools/comment-release-assets-uploaded.bash; }; x52-release-tools = pkgs.symlinkJoin { @@ -117,7 +117,7 @@ BASH_BIN = "${pkgs.bash}/bin/bash"; } '' - bash ${./release-tools/test.sh} + bash ${./release-tools/test.bash} touch "$out" ''; diff --git a/release-tools/bump-changelogs.sh b/release-tools/bump-changelogs.bash similarity index 99% rename from release-tools/bump-changelogs.sh rename to release-tools/bump-changelogs.bash index 40e6f4c..4ed3748 100644 --- a/release-tools/bump-changelogs.sh +++ b/release-tools/bump-changelogs.bash @@ -1,4 +1,5 @@ set -eEuo pipefail +shopt -s inherit_errexit release_plz_pr_json="${RELEASE_PLZ_PR_JSON:?RELEASE_PLZ_PR_JSON is required}" cargo_bin="${X52_CARGO:-cargo}" diff --git a/release-tools/comment-release-assets-uploaded.sh b/release-tools/comment-release-assets-uploaded.bash similarity index 99% rename from release-tools/comment-release-assets-uploaded.sh rename to release-tools/comment-release-assets-uploaded.bash index 92c8ff8..313fa68 100644 --- a/release-tools/comment-release-assets-uploaded.sh +++ b/release-tools/comment-release-assets-uploaded.bash @@ -1,4 +1,5 @@ set -eEuo pipefail +shopt -s inherit_errexit release_plz_releases_json="${1:?release-plz releases JSON is required}" marker="" diff --git a/release-tools/comment-release-pr.sh b/release-tools/comment-release-pr.bash similarity index 99% rename from release-tools/comment-release-pr.sh rename to release-tools/comment-release-pr.bash index 99cdde5..9636c66 100644 --- a/release-tools/comment-release-pr.sh +++ b/release-tools/comment-release-pr.bash @@ -1,4 +1,5 @@ set -eEuo pipefail +shopt -s inherit_errexit release_plz_releases_json="${1:?release-plz releases JSON is required}" marker="" diff --git a/release-tools/test.sh b/release-tools/test.bash similarity index 98% rename from release-tools/test.sh rename to release-tools/test.bash index 92960a4..d49457e 100644 --- a/release-tools/test.sh +++ b/release-tools/test.bash @@ -1,4 +1,5 @@ set -euo pipefail +shopt -s inherit_errexit test_root="$(mktemp -d)" trap 'rm -rf "$test_root"' EXIT @@ -36,6 +37,7 @@ EOF printf '#!%s\n' "$bash_bin" >"$fake_bin/cargo" cat >>"$fake_bin/cargo" <<'EOF' set -euo pipefail +shopt -s inherit_errexit [[ "$*" == "metadata --format-version=1 --no-deps" ]] printf '{"packages":[{"name":"demo","manifest_path":"%s/Cargo.toml"}]}\n' "$FIXTURE_ROOT" EOF @@ -43,6 +45,7 @@ EOF printf '#!%s\n' "$bash_bin" >"$fake_bin/gh" cat >>"$fake_bin/gh" <<'EOF' set -euo pipefail +shopt -s inherit_errexit printf 'gh' >>"$COMMAND_LOG" printf ' <%s>' "$@" >>"$COMMAND_LOG" printf '\n' >>"$COMMAND_LOG" @@ -84,6 +87,7 @@ EOF printf '#!%s\n' "$bash_bin" >"$fake_bin/git" cat >>"$fake_bin/git" <<'EOF' set -euo pipefail +shopt -s inherit_errexit if [[ "$*" == "diff --cached --quiet" ]]; then exit 1 fi diff --git a/release-tools/update-release-notes.sh b/release-tools/update-release-notes.bash similarity index 98% rename from release-tools/update-release-notes.sh rename to release-tools/update-release-notes.bash index b51f6fd..9b4975f 100644 --- a/release-tools/update-release-notes.sh +++ b/release-tools/update-release-notes.bash @@ -1,4 +1,5 @@ set -eEuo pipefail +shopt -s inherit_errexit release_plz_releases_json="${RELEASE_PLZ_RELEASES_JSON:?RELEASE_PLZ_RELEASES_JSON is required}" cargo_bin="${X52_CARGO:-cargo}" From 9b0a6848bdf0f8bf8bc0a3cca0dc38fb5caa9b75 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sun, 9 Aug 2026 14:37:08 +0100 Subject: [PATCH 2/2] ci: add ShellCheck check --- flake.nix | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/flake.nix b/flake.nix index 111eb0e..f20e819 100644 --- a/flake.nix +++ b/flake.nix @@ -121,6 +121,16 @@ touch "$out" ''; + shellcheck = + pkgs.runCommand "check-shellcheck" + { + nativeBuildInputs = [ pkgs.shellcheck ]; + } + '' + shellcheck ${./release-tools}/*.bash + touch "$out" + ''; + formatting = pkgs.runCommand "check-formatting" {