diff --git a/.mise/tasks/stencil/post/go-sync b/.mise/tasks/stencil/post/go-sync index 5b501fea..24c470b7 100755 --- a/.mise/tasks/stencil/post/go-sync +++ b/.mise/tasks/stencil/post/go-sync @@ -11,6 +11,9 @@ DEVBASE_LIB_DIR="$DEVBASE_ROOT_DIR/shell/lib" # shellcheck source=../../../../shell/lib/bootstrap.sh source "$DEVBASE_LIB_DIR"/bootstrap.sh +# shellcheck source=../../../../shell/lib/go.sh +source "$DEVBASE_LIB_DIR"/go.sh + # shellcheck source=../../../../shell/lib/logging.sh source "$DEVBASE_LIB_DIR"/logging.sh @@ -20,6 +23,7 @@ source "$DEVBASE_LIB_DIR"/sed.sh appDir="$(get_repo_directory)" goVersion="$(grep "^golang " "$appDir"/.tool-versions | awk '{print $2}')" +gomodGoVersion="" if [[ -f "$appDir/go.mod" ]]; then gomodGoVersion="$(grep "^go " "$appDir/go.mod" | awk '{print $2}')" fi @@ -39,16 +43,11 @@ if [[ -z $gomodGoVersion ]]; then exit 0 fi -git ls-files '**/go.mod' | while read -r gomod; do +for godir in $(go_mod_dirs); do + gomod="$godir/go.mod" if managed_by_stencil "$gomod"; then continue fi - for ignored in ${IGNORED_GO_MOD_DIRS:-}; do - if [[ "$(dirname "$gomod")" == "$ignored" ]]; then - warn "Ignoring $gomod as per IGNORED_GO_MOD_DIRS" - continue 2 - fi - done info "Syncing Go version/toolchain in $gomod to $gomodGoVersion/$goVersion" sed_replace '^go .*$' "go $gomodGoVersion" "$appDir/$gomod" diff --git a/go.mod b/go.mod index 8cd130f1..e8a3a435 100644 --- a/go.mod +++ b/go.mod @@ -71,12 +71,12 @@ require ( github.com/zalando/go-keyring v0.2.6 // indirect go.opentelemetry.io/auto/sdk v1.2.1 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.64.0 // indirect - go.opentelemetry.io/otel v1.39.0 // indirect + go.opentelemetry.io/otel v1.40.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.38.0 // indirect - go.opentelemetry.io/otel/metric v1.39.0 // indirect - go.opentelemetry.io/otel/sdk v1.39.0 // indirect - go.opentelemetry.io/otel/trace v1.39.0 // indirect + go.opentelemetry.io/otel/metric v1.40.0 // indirect + go.opentelemetry.io/otel/sdk v1.40.0 // indirect + go.opentelemetry.io/otel/trace v1.40.0 // indirect go.opentelemetry.io/proto/otlp v1.7.1 // indirect go.yaml.in/yaml/v2 v2.4.3 // indirect golang.org/x/crypto v0.48.0 // indirect diff --git a/go.sum b/go.sum index 382f5cb6..5b5175c1 100644 --- a/go.sum +++ b/go.sum @@ -173,20 +173,20 @@ go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.64.0 h1:ssfIgGNANqpVFCndZvcuyKbl0g+UAVcbBcqGkG28H0Y= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.64.0/go.mod h1:GQ/474YrbE4Jx8gZ4q5I4hrhUzM6UPzyrqJYV2AqPoQ= -go.opentelemetry.io/otel v1.39.0 h1:8yPrr/S0ND9QEfTfdP9V+SiwT4E0G7Y5MO7p85nis48= -go.opentelemetry.io/otel v1.39.0/go.mod h1:kLlFTywNWrFyEdH0oj2xK0bFYZtHRYUdv1NklR/tgc8= +go.opentelemetry.io/otel v1.40.0 h1:oA5YeOcpRTXq6NN7frwmwFR0Cn3RhTVZvXsP4duvCms= +go.opentelemetry.io/otel v1.40.0/go.mod h1:IMb+uXZUKkMXdPddhwAHm6UfOwJyh4ct1ybIlV14J0g= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0 h1:GqRJVj7UmLjCVyVJ3ZFLdPRmhDUp2zFmQe3RHIOsw24= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0/go.mod h1:ri3aaHSmCTVYu2AWv44YMauwAQc0aqI9gHKIcSbI1pU= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.38.0 h1:lwI4Dc5leUqENgGuQImwLo4WnuXFPetmPpkLi2IrX54= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.38.0/go.mod h1:Kz/oCE7z5wuyhPxsXDuaPteSWqjSBD5YaSdbxZYGbGk= -go.opentelemetry.io/otel/metric v1.39.0 h1:d1UzonvEZriVfpNKEVmHXbdf909uGTOQjA0HF0Ls5Q0= -go.opentelemetry.io/otel/metric v1.39.0/go.mod h1:jrZSWL33sD7bBxg1xjrqyDjnuzTUB0x1nBERXd7Ftcs= -go.opentelemetry.io/otel/sdk v1.39.0 h1:nMLYcjVsvdui1B/4FRkwjzoRVsMK8uL/cj0OyhKzt18= -go.opentelemetry.io/otel/sdk v1.39.0/go.mod h1:vDojkC4/jsTJsE+kh+LXYQlbL8CgrEcwmt1ENZszdJE= -go.opentelemetry.io/otel/sdk/metric v1.39.0 h1:cXMVVFVgsIf2YL6QkRF4Urbr/aMInf+2WKg+sEJTtB8= -go.opentelemetry.io/otel/sdk/metric v1.39.0/go.mod h1:xq9HEVH7qeX69/JnwEfp6fVq5wosJsY1mt4lLfYdVew= -go.opentelemetry.io/otel/trace v1.39.0 h1:2d2vfpEDmCJ5zVYz7ijaJdOF59xLomrvj7bjt6/qCJI= -go.opentelemetry.io/otel/trace v1.39.0/go.mod h1:88w4/PnZSazkGzz/w84VHpQafiU4EtqqlVdxWy+rNOA= +go.opentelemetry.io/otel/metric v1.40.0 h1:rcZe317KPftE2rstWIBitCdVp89A2HqjkxR3c11+p9g= +go.opentelemetry.io/otel/metric v1.40.0/go.mod h1:ib/crwQH7N3r5kfiBZQbwrTge743UDc7DTFVZrrXnqc= +go.opentelemetry.io/otel/sdk v1.40.0 h1:KHW/jUzgo6wsPh9At46+h4upjtccTmuZCFAc9OJ71f8= +go.opentelemetry.io/otel/sdk v1.40.0/go.mod h1:Ph7EFdYvxq72Y8Li9q8KebuYUr2KoeyHx0DRMKrYBUE= +go.opentelemetry.io/otel/sdk/metric v1.40.0 h1:mtmdVqgQkeRxHgRv4qhyJduP3fYJRMX4AtAlbuWdCYw= +go.opentelemetry.io/otel/sdk/metric v1.40.0/go.mod h1:4Z2bGMf0KSK3uRjlczMOeMhKU2rhUqdWNoKcYrtcBPg= +go.opentelemetry.io/otel/trace v1.40.0 h1:WA4etStDttCSYuhwvEa8OP8I5EWu24lkOzp+ZYblVjw= +go.opentelemetry.io/otel/trace v1.40.0/go.mod h1:zeAhriXecNGP/s2SEG3+Y8X9ujcJOTqQ5RgdEJcawiA= go.opentelemetry.io/proto/otlp v1.7.1 h1:gTOMpGDb0WTBOP8JaO72iL3auEZhVmAQg4ipjOVAtj4= go.opentelemetry.io/proto/otlp v1.7.1/go.mod h1:b2rVh6rfI/s2pHWNlB7ILJcRALpcNDzKhACevjI+ZnE= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= diff --git a/mise.devbase.lock b/mise.devbase.lock new file mode 100644 index 00000000..c092c76f --- /dev/null +++ b/mise.devbase.lock @@ -0,0 +1,581 @@ +# @generated - this file is auto-generated by `mise lock` https://mise.jdx.dev/dev-tools/mise-lock.html + +[[tools."aqua:fullstorydev/grpcui"]] +version = "1.3.1" +backend = "aqua:fullstorydev/grpcui" + +[tools."aqua:fullstorydev/grpcui"."platforms.linux-arm64"] +checksum = "sha256:4d2dd6edaa1c52fb0d23183b013772e28ccaf5ec5cae2e12b79239bde9c94962" +url = "https://github.com/fullstorydev/grpcui/releases/download/v1.3.1/grpcui_1.3.1_linux_arm64.tar.gz" + +[tools."aqua:fullstorydev/grpcui"."platforms.linux-arm64-musl"] +checksum = "sha256:4d2dd6edaa1c52fb0d23183b013772e28ccaf5ec5cae2e12b79239bde9c94962" +url = "https://github.com/fullstorydev/grpcui/releases/download/v1.3.1/grpcui_1.3.1_linux_arm64.tar.gz" + +[tools."aqua:fullstorydev/grpcui"."platforms.linux-x64"] +checksum = "sha256:be6a4b3d0423dd20d1540e30343337bc640ec276098218913479948a93b3d7f1" +url = "https://github.com/fullstorydev/grpcui/releases/download/v1.3.1/grpcui_1.3.1_linux_x86_64.tar.gz" + +[tools."aqua:fullstorydev/grpcui"."platforms.linux-x64-musl"] +checksum = "sha256:be6a4b3d0423dd20d1540e30343337bc640ec276098218913479948a93b3d7f1" +url = "https://github.com/fullstorydev/grpcui/releases/download/v1.3.1/grpcui_1.3.1_linux_x86_64.tar.gz" + +[tools."aqua:fullstorydev/grpcui"."platforms.macos-arm64"] +checksum = "sha256:580e72dde1570dae070286acc850b9052a4744483377e8d9b446b94277def515" +url = "https://github.com/fullstorydev/grpcui/releases/download/v1.3.1/grpcui_1.3.1_osx_arm64.tar.gz" + +[tools."aqua:fullstorydev/grpcui"."platforms.macos-x64"] +checksum = "sha256:8b54417a63322f64155e66798ad83176689c71c1abb28a4385683b7e5cd69f88" +url = "https://github.com/fullstorydev/grpcui/releases/download/v1.3.1/grpcui_1.3.1_osx_x86_64.tar.gz" + +[tools."aqua:fullstorydev/grpcui"."platforms.windows-x64"] +checksum = "sha256:ff666b684f51d146599cc3ff26509284bf1af0206fc6dca1cfe908a0da4819cc" +url = "https://github.com/fullstorydev/grpcui/releases/download/v1.3.1/grpcui_1.3.1_windows_x86_64.zip" + +[[tools.buf]] +version = "1.60.0" +backend = "aqua:bufbuild/buf" + +[tools.buf."platforms.linux-arm64"] +checksum = "sha256:f50e4c4660e86d21558c48c3bc3ae381ed3416ad8bd1dd4445735ac899cacfbc" +url = "https://github.com/bufbuild/buf/releases/download/v1.60.0/buf-Linux-aarch64.tar.gz" + +[tools.buf."platforms.linux-arm64-musl"] +checksum = "sha256:f50e4c4660e86d21558c48c3bc3ae381ed3416ad8bd1dd4445735ac899cacfbc" +url = "https://github.com/bufbuild/buf/releases/download/v1.60.0/buf-Linux-aarch64.tar.gz" + +[tools.buf."platforms.linux-x64"] +checksum = "sha256:f3d0588a1376973cdaa59f8daf4d9f41451edfb7f0702710ba2de8889fd6bd47" +url = "https://github.com/bufbuild/buf/releases/download/v1.60.0/buf-Linux-x86_64.tar.gz" + +[tools.buf."platforms.linux-x64-musl"] +checksum = "sha256:f3d0588a1376973cdaa59f8daf4d9f41451edfb7f0702710ba2de8889fd6bd47" +url = "https://github.com/bufbuild/buf/releases/download/v1.60.0/buf-Linux-x86_64.tar.gz" + +[tools.buf."platforms.macos-arm64"] +checksum = "sha256:31187d9c3005f71556e6babedb5ca851fd4f87299a1158ac2115442f3640952e" +url = "https://github.com/bufbuild/buf/releases/download/v1.60.0/buf-Darwin-arm64.tar.gz" + +[tools.buf."platforms.macos-x64"] +checksum = "sha256:62a1b054b532ace02df86a008c92ad78ca54f6abaf5db8c574338d8de741be77" +url = "https://github.com/bufbuild/buf/releases/download/v1.60.0/buf-Darwin-x86_64.tar.gz" + +[tools.buf."platforms.windows-x64"] +checksum = "sha256:b242cfa50230f56338bbe5bf18fc855d44907de3675ebdc01a98fbaad0f6f118" +url = "https://github.com/bufbuild/buf/releases/download/v1.60.0/buf-Windows-x86_64.zip" + +[[tools.github-cli]] +version = "2.83.2" +backend = "aqua:cli/cli" + +[tools.github-cli."platforms.linux-arm64"] +checksum = "sha256:b1a0c0a0fcf18524e36996caddc92a062355ed014defc836203fe20fba75a38e" +url = "https://github.com/cli/cli/releases/download/v2.83.2/gh_2.83.2_linux_arm64.tar.gz" + +[tools.github-cli."platforms.linux-arm64-musl"] +checksum = "sha256:b1a0c0a0fcf18524e36996caddc92a062355ed014defc836203fe20fba75a38e" +url = "https://github.com/cli/cli/releases/download/v2.83.2/gh_2.83.2_linux_arm64.tar.gz" + +[tools.github-cli."platforms.linux-x64"] +checksum = "sha256:ca6e7641214fbd0e21429cec4b64a7ba626fd946d8f9d6d191467545b092015e" +url = "https://github.com/cli/cli/releases/download/v2.83.2/gh_2.83.2_linux_amd64.tar.gz" + +[tools.github-cli."platforms.linux-x64-musl"] +checksum = "sha256:ca6e7641214fbd0e21429cec4b64a7ba626fd946d8f9d6d191467545b092015e" +url = "https://github.com/cli/cli/releases/download/v2.83.2/gh_2.83.2_linux_amd64.tar.gz" + +[tools.github-cli."platforms.macos-arm64"] +checksum = "sha256:ba3e0396ebbc8da17256144ddda503e4e79c8b502166335569f8390d6b75fa8d" +url = "https://github.com/cli/cli/releases/download/v2.83.2/gh_2.83.2_macOS_arm64.zip" + +[tools.github-cli."platforms.macos-x64"] +checksum = "sha256:6f1712519ccc768946791dc97da407bf188582345b73fef3d604d050ebf6f614" +url = "https://github.com/cli/cli/releases/download/v2.83.2/gh_2.83.2_macOS_amd64.zip" + +[tools.github-cli."platforms.windows-x64"] +checksum = "sha256:b95bf2d953e3bf497bb2c0aed97ffcc5ed8471b80f0920d663a92a6111f05135" +url = "https://github.com/cli/cli/releases/download/v2.83.2/gh_2.83.2_windows_amd64.zip" + +[[tools."github:getoutreach/ci"]] +version = "1.6.14" +backend = "github:getoutreach/ci" + +[tools."github:getoutreach/ci"."platforms.linux-arm64"] +checksum = "sha256:22f3349aa67028201bdb1691dfb8833ef39e4f7229c9aa73ecda9b88a91cc2ac" +url = "https://github.com/getoutreach/ci/releases/download/v1.6.14/ci_1.6.14_linux_arm64.tar.gz" +url_api = "https://api.github.com/repos/getoutreach/ci/releases/assets/331854918" + +[tools."github:getoutreach/ci"."platforms.linux-arm64-musl"] +checksum = "sha256:22f3349aa67028201bdb1691dfb8833ef39e4f7229c9aa73ecda9b88a91cc2ac" +url = "https://github.com/getoutreach/ci/releases/download/v1.6.14/ci_1.6.14_linux_arm64.tar.gz" +url_api = "https://api.github.com/repos/getoutreach/ci/releases/assets/331854918" + +[tools."github:getoutreach/ci"."platforms.linux-x64"] +checksum = "sha256:a8bbc112b45bdbc713397eff318b317e248288d9bc277598794a25173d83e1be" +url = "https://github.com/getoutreach/ci/releases/download/v1.6.14/ci_1.6.14_linux_amd64.tar.gz" +url_api = "https://api.github.com/repos/getoutreach/ci/releases/assets/331854916" + +[tools."github:getoutreach/ci"."platforms.linux-x64-musl"] +checksum = "sha256:a8bbc112b45bdbc713397eff318b317e248288d9bc277598794a25173d83e1be" +url = "https://github.com/getoutreach/ci/releases/download/v1.6.14/ci_1.6.14_linux_amd64.tar.gz" +url_api = "https://api.github.com/repos/getoutreach/ci/releases/assets/331854916" + +[tools."github:getoutreach/ci"."platforms.macos-arm64"] +checksum = "sha256:0df9e9ffc39585dbc85ba6d9da8fd62924e8eae86c172c71377b84df3e5f2572" +url = "https://github.com/getoutreach/ci/releases/download/v1.6.14/ci_1.6.14_darwin_arm64.tar.gz" +url_api = "https://api.github.com/repos/getoutreach/ci/releases/assets/331854914" + +[tools."github:getoutreach/ci"."platforms.macos-x64"] +checksum = "sha256:a27dfecb63877d3f25c3a0c0a1cbb60352e58d234df8e1cc81fe77169d6c7cb9" +url = "https://github.com/getoutreach/ci/releases/download/v1.6.14/ci_1.6.14_darwin_amd64.tar.gz" +url_api = "https://api.github.com/repos/getoutreach/ci/releases/assets/331854925" + +[[tools."github:getoutreach/lintroller"]] +version = "1.20.0" +backend = "github:getoutreach/lintroller" + +[tools."github:getoutreach/lintroller"."platforms.linux-arm64"] +checksum = "sha256:7be1f82949c2920656ceacd6c35662f9d715bb2b154366ed4de7837457083c0c" +url = "https://github.com/getoutreach/lintroller/releases/download/v1.20.0/lintroller_1.20.0_linux_arm64.tar.gz" +url_api = "https://api.github.com/repos/getoutreach/lintroller/releases/assets/370233407" + +[tools."github:getoutreach/lintroller"."platforms.linux-arm64-musl"] +checksum = "sha256:7be1f82949c2920656ceacd6c35662f9d715bb2b154366ed4de7837457083c0c" +url = "https://github.com/getoutreach/lintroller/releases/download/v1.20.0/lintroller_1.20.0_linux_arm64.tar.gz" +url_api = "https://api.github.com/repos/getoutreach/lintroller/releases/assets/370233407" + +[tools."github:getoutreach/lintroller"."platforms.linux-x64"] +checksum = "sha256:af77feb558a2adfbee6f3067036ee07ef178a026f3c312a2b7b302b9773565a6" +url = "https://github.com/getoutreach/lintroller/releases/download/v1.20.0/lintroller_1.20.0_linux_amd64.tar.gz" +url_api = "https://api.github.com/repos/getoutreach/lintroller/releases/assets/370233424" + +[tools."github:getoutreach/lintroller"."platforms.linux-x64-musl"] +checksum = "sha256:af77feb558a2adfbee6f3067036ee07ef178a026f3c312a2b7b302b9773565a6" +url = "https://github.com/getoutreach/lintroller/releases/download/v1.20.0/lintroller_1.20.0_linux_amd64.tar.gz" +url_api = "https://api.github.com/repos/getoutreach/lintroller/releases/assets/370233424" + +[tools."github:getoutreach/lintroller"."platforms.macos-arm64"] +checksum = "sha256:44f5487dffdf3bfa5297c3f036ff06fce29088960234f7c911baaedb558e88bd" +url = "https://github.com/getoutreach/lintroller/releases/download/v1.20.0/lintroller_1.20.0_darwin_arm64.tar.gz" +url_api = "https://api.github.com/repos/getoutreach/lintroller/releases/assets/370233413" + +[tools."github:getoutreach/lintroller"."platforms.macos-x64"] +checksum = "sha256:e36f195412e1367351b688008af1b12b52e1455316bf24ecfb0ebfe5d61ee2da" +url = "https://github.com/getoutreach/lintroller/releases/download/v1.20.0/lintroller_1.20.0_darwin_amd64.tar.gz" +url_api = "https://api.github.com/repos/getoutreach/lintroller/releases/assets/370233421" + +[[tools."github:getoutreach/orc"]] +version = "1.122.0" +backend = "github:getoutreach/orc" + +[tools."github:getoutreach/orc"."platforms.linux-arm64"] +checksum = "sha256:e09e6d42ded7d7ef3881fd59a2a93f133c9a64d6d24b1c6d0494e1bc10396111" +url = "https://github.com/getoutreach/orc/releases/download/v1.122.0/orc_1.122.0_linux_arm64.tar.gz" +url_api = "https://api.github.com/repos/getoutreach/orc/releases/assets/324431840" + +[tools."github:getoutreach/orc"."platforms.linux-arm64-musl"] +checksum = "sha256:e09e6d42ded7d7ef3881fd59a2a93f133c9a64d6d24b1c6d0494e1bc10396111" +url = "https://github.com/getoutreach/orc/releases/download/v1.122.0/orc_1.122.0_linux_arm64.tar.gz" +url_api = "https://api.github.com/repos/getoutreach/orc/releases/assets/324431840" + +[tools."github:getoutreach/orc"."platforms.linux-x64"] +checksum = "sha256:1267c41533bcde798efe17df5acb73d0124bec21e7b28c8ff100a44f94ae8ea4" +url = "https://github.com/getoutreach/orc/releases/download/v1.122.0/orc_1.122.0_linux_amd64.tar.gz" +url_api = "https://api.github.com/repos/getoutreach/orc/releases/assets/324431854" + +[tools."github:getoutreach/orc"."platforms.linux-x64-musl"] +checksum = "sha256:1267c41533bcde798efe17df5acb73d0124bec21e7b28c8ff100a44f94ae8ea4" +url = "https://github.com/getoutreach/orc/releases/download/v1.122.0/orc_1.122.0_linux_amd64.tar.gz" +url_api = "https://api.github.com/repos/getoutreach/orc/releases/assets/324431854" + +[tools."github:getoutreach/orc"."platforms.macos-arm64"] +checksum = "sha256:6b589499c7f1f69f8b00c95766502654fcf8882f9f5e332a13cdd1723f324984" +url = "https://github.com/getoutreach/orc/releases/download/v1.122.0/orc_1.122.0_darwin_arm64.tar.gz" +url_api = "https://api.github.com/repos/getoutreach/orc/releases/assets/324431846" + +[tools."github:getoutreach/orc"."platforms.macos-x64"] +checksum = "sha256:d728675288ea004b808d72559a32d6a367c8082ded93c530c157067234d79a8d" +url = "https://github.com/getoutreach/orc/releases/download/v1.122.0/orc_1.122.0_darwin_amd64.tar.gz" +url_api = "https://api.github.com/repos/getoutreach/orc/releases/assets/324431863" + +[[tools.go-jsonnet]] +version = "0.19.1" +backend = "aqua:google/go-jsonnet" + +[tools.go-jsonnet."platforms.linux-arm64"] +checksum = "sha256:b722400231c058623dce9eea52ee55460f05d93929276b3775ec8745e4f17a39" +url = "https://github.com/google/go-jsonnet/releases/download/v0.19.1/go-jsonnet_0.19.1_Linux_arm64.tar.gz" + +[tools.go-jsonnet."platforms.linux-arm64-musl"] +checksum = "sha256:b722400231c058623dce9eea52ee55460f05d93929276b3775ec8745e4f17a39" +url = "https://github.com/google/go-jsonnet/releases/download/v0.19.1/go-jsonnet_0.19.1_Linux_arm64.tar.gz" + +[tools.go-jsonnet."platforms.linux-x64"] +checksum = "sha256:80595aaec41f8c65b1fee503dc171ecc1d4706a37b5c4dd7d5c24cf2072deda5" +url = "https://github.com/google/go-jsonnet/releases/download/v0.19.1/go-jsonnet_0.19.1_Linux_x86_64.tar.gz" + +[tools.go-jsonnet."platforms.linux-x64-musl"] +checksum = "sha256:80595aaec41f8c65b1fee503dc171ecc1d4706a37b5c4dd7d5c24cf2072deda5" +url = "https://github.com/google/go-jsonnet/releases/download/v0.19.1/go-jsonnet_0.19.1_Linux_x86_64.tar.gz" + +[tools.go-jsonnet."platforms.macos-arm64"] +checksum = "sha256:c7a98187b4b167e9e885dba52138ed802d4db4635b47b95af6a82448ff9d7ba1" +url = "https://github.com/google/go-jsonnet/releases/download/v0.19.1/go-jsonnet_0.19.1_Darwin_arm64.tar.gz" + +[tools.go-jsonnet."platforms.macos-x64"] +checksum = "sha256:d7196ca4d29f638dffcd616cd9498f359d731466920393ee87069c84ae5eea31" +url = "https://github.com/google/go-jsonnet/releases/download/v0.19.1/go-jsonnet_0.19.1_Darwin_x86_64.tar.gz" + +[tools.go-jsonnet."platforms.windows-x64"] +checksum = "sha256:16166b82b8764818baeda37806419007c72c82741c9bb6970703ea9fe71e2f80" +url = "https://github.com/google/go-jsonnet/releases/download/v0.19.1/go-jsonnet_0.19.1_Windows_x86_64.tar.gz" + +[[tools."go:github.com/go-delve/delve/cmd/dlv"]] +version = "1.26.0" +backend = "go:github.com/go-delve/delve/cmd/dlv" + +[[tools."go:github.com/mattn/goveralls"]] +version = "0.0.11" +backend = "go:github.com/mattn/goveralls" + +[[tools."go:golang.org/x/tools/cmd/goimports"]] +version = "0.5.0" +backend = "go:golang.org/x/tools/cmd/goimports" + +[[tools.gofumpt]] +version = "0.9.2" +backend = "aqua:mvdan/gofumpt" + +[tools.gofumpt."platforms.linux-arm64"] +checksum = "sha256:5acaa5a554050f55fc81ef02a8b0d14ab6b3c058a84513885286dc52d3451645" +url = "https://github.com/mvdan/gofumpt/releases/download/v0.9.2/gofumpt_v0.9.2_linux_arm64" + +[tools.gofumpt."platforms.linux-arm64-musl"] +checksum = "sha256:5acaa5a554050f55fc81ef02a8b0d14ab6b3c058a84513885286dc52d3451645" +url = "https://github.com/mvdan/gofumpt/releases/download/v0.9.2/gofumpt_v0.9.2_linux_arm64" + +[tools.gofumpt."platforms.linux-x64"] +checksum = "sha256:72cf61b12fef91eab6df6db4a4284f30616b5ead330112e28a1fa1cb15e57339" +url = "https://github.com/mvdan/gofumpt/releases/download/v0.9.2/gofumpt_v0.9.2_linux_amd64" + +[tools.gofumpt."platforms.linux-x64-musl"] +checksum = "sha256:72cf61b12fef91eab6df6db4a4284f30616b5ead330112e28a1fa1cb15e57339" +url = "https://github.com/mvdan/gofumpt/releases/download/v0.9.2/gofumpt_v0.9.2_linux_amd64" + +[tools.gofumpt."platforms.macos-arm64"] +checksum = "sha256:c241fb742599a6cb0563d7377f59def65d451b23dd718dbc6ddf4ab5e695e8f1" +url = "https://github.com/mvdan/gofumpt/releases/download/v0.9.2/gofumpt_v0.9.2_darwin_arm64" + +[tools.gofumpt."platforms.macos-x64"] +checksum = "sha256:4172b912ec514038605f334fef9ed7b3f12ca3e40024cb0a622eab3073a55e57" +url = "https://github.com/mvdan/gofumpt/releases/download/v0.9.2/gofumpt_v0.9.2_darwin_amd64" + +[tools.gofumpt."platforms.windows-x64"] +checksum = "sha256:067236b55a8ef4547ddc7d78fbb7a38169de15bab02a1763cde6a132c59dd35c" +url = "https://github.com/mvdan/gofumpt/releases/download/v0.9.2/gofumpt_v0.9.2_windows_amd64.exe" + +[[tools.gojq]] +version = "0.12.18" +backend = "aqua:itchyny/gojq" + +[tools.gojq."platforms.linux-arm64"] +checksum = "sha256:519601a973cc74621d0ee775a86cac791f45bb69a78bd1901aadd46701b4c571" +url = "https://github.com/itchyny/gojq/releases/download/v0.12.18/gojq_v0.12.18_linux_arm64.tar.gz" + +[tools.gojq."platforms.linux-arm64-musl"] +checksum = "sha256:519601a973cc74621d0ee775a86cac791f45bb69a78bd1901aadd46701b4c571" +url = "https://github.com/itchyny/gojq/releases/download/v0.12.18/gojq_v0.12.18_linux_arm64.tar.gz" + +[tools.gojq."platforms.linux-x64"] +checksum = "sha256:7f00d3e5336749139199e650bcad89b93341b871f211a34e02fca79e59d5eb45" +url = "https://github.com/itchyny/gojq/releases/download/v0.12.18/gojq_v0.12.18_linux_amd64.tar.gz" + +[tools.gojq."platforms.linux-x64-musl"] +checksum = "sha256:7f00d3e5336749139199e650bcad89b93341b871f211a34e02fca79e59d5eb45" +url = "https://github.com/itchyny/gojq/releases/download/v0.12.18/gojq_v0.12.18_linux_amd64.tar.gz" + +[tools.gojq."platforms.macos-arm64"] +checksum = "sha256:bb3794b179f45534120ae5834077c9d1114913bd014ffaa1e24856920d4ab331" +url = "https://github.com/itchyny/gojq/releases/download/v0.12.18/gojq_v0.12.18_darwin_arm64.zip" + +[tools.gojq."platforms.macos-x64"] +checksum = "sha256:6ca887b755e7c22330c64fe4cf9d974c19e9c1f081d362d8e4f0bf26f1635eda" +url = "https://github.com/itchyny/gojq/releases/download/v0.12.18/gojq_v0.12.18_darwin_amd64.zip" + +[tools.gojq."platforms.windows-x64"] +checksum = "sha256:ecf343e99fb0190fede177becd6e8602386c801c0a98c7e10905a8d832f612d8" +url = "https://github.com/itchyny/gojq/releases/download/v0.12.18/gojq_v0.12.18_windows_amd64.zip" + +[[tools.golangci-lint]] +version = "2.9.0" +backend = "aqua:golangci/golangci-lint" + +[tools.golangci-lint."platforms.linux-arm64"] +checksum = "sha256:94e80cdb51c73c20a313bd3afa1fb23137728813c19fd730248a1e8678fcc46d" +url = "https://github.com/golangci/golangci-lint/releases/download/v2.9.0/golangci-lint-2.9.0-linux-arm64.tar.gz" + +[tools.golangci-lint."platforms.linux-arm64-musl"] +checksum = "sha256:94e80cdb51c73c20a313bd3afa1fb23137728813c19fd730248a1e8678fcc46d" +url = "https://github.com/golangci/golangci-lint/releases/download/v2.9.0/golangci-lint-2.9.0-linux-arm64.tar.gz" + +[tools.golangci-lint."platforms.linux-x64"] +checksum = "sha256:493aaaca2eba6c8bcef847d92716bbd91bbac4b22cdbb0ab5b6a581b32946091" +url = "https://github.com/golangci/golangci-lint/releases/download/v2.9.0/golangci-lint-2.9.0-linux-amd64.tar.gz" + +[tools.golangci-lint."platforms.linux-x64-musl"] +checksum = "sha256:493aaaca2eba6c8bcef847d92716bbd91bbac4b22cdbb0ab5b6a581b32946091" +url = "https://github.com/golangci/golangci-lint/releases/download/v2.9.0/golangci-lint-2.9.0-linux-amd64.tar.gz" + +[tools.golangci-lint."platforms.macos-arm64"] +checksum = "sha256:a86eabba3507deddd21f2a01a1df2a0ee5bc5c8178d4165cdcaaad8597358760" +url = "https://github.com/golangci/golangci-lint/releases/download/v2.9.0/golangci-lint-2.9.0-darwin-arm64.tar.gz" + +[tools.golangci-lint."platforms.macos-x64"] +checksum = "sha256:ba29a353be54a74c45946763983808dc8305eeeca73db1761b5ab112f87f8157" +url = "https://github.com/golangci/golangci-lint/releases/download/v2.9.0/golangci-lint-2.9.0-darwin-amd64.tar.gz" + +[tools.golangci-lint."platforms.windows-x64"] +checksum = "sha256:130fca8fa959eb840267c5e231f030a948e0de1e768bf6a31785505d1061632c" +url = "https://github.com/golangci/golangci-lint/releases/download/v2.9.0/golangci-lint-2.9.0-windows-amd64.zip" + +[[tools.goreleaser]] +version = "1.20.0" +backend = "aqua:goreleaser/goreleaser" + +[tools.goreleaser."platforms.linux-arm64"] +provenance = "cosign" + +[tools.goreleaser."platforms.linux-arm64-musl"] +provenance = "cosign" + +[tools.goreleaser."platforms.linux-x64"] +provenance = "cosign" + +[tools.goreleaser."platforms.linux-x64-musl"] +provenance = "cosign" + +[tools.goreleaser."platforms.macos-arm64"] +provenance = "cosign" + +[tools.goreleaser."platforms.macos-x64"] +provenance = "cosign" + +[tools.goreleaser."platforms.windows-x64"] +provenance = "cosign" + +[[tools.gotestsum]] +version = "1.13.0" +backend = "aqua:gotestyourself/gotestsum" + +[tools.gotestsum."platforms.linux-arm64"] +checksum = "sha256:7644a4c5cd1bb978d56245aeab25a586ac5ac62adebed20a399548867c13499d" +url = "https://github.com/gotestyourself/gotestsum/releases/download/v1.13.0/gotestsum_1.13.0_linux_arm64.tar.gz" + +[tools.gotestsum."platforms.linux-arm64-musl"] +checksum = "sha256:7644a4c5cd1bb978d56245aeab25a586ac5ac62adebed20a399548867c13499d" +url = "https://github.com/gotestyourself/gotestsum/releases/download/v1.13.0/gotestsum_1.13.0_linux_arm64.tar.gz" + +[tools.gotestsum."platforms.linux-x64"] +checksum = "sha256:11ccddeaf708ef228889f9fe2f68291a75b27013ddfc3b18156e094f5f40e8ee" +url = "https://github.com/gotestyourself/gotestsum/releases/download/v1.13.0/gotestsum_1.13.0_linux_amd64.tar.gz" + +[tools.gotestsum."platforms.linux-x64-musl"] +checksum = "sha256:11ccddeaf708ef228889f9fe2f68291a75b27013ddfc3b18156e094f5f40e8ee" +url = "https://github.com/gotestyourself/gotestsum/releases/download/v1.13.0/gotestsum_1.13.0_linux_amd64.tar.gz" + +[tools.gotestsum."platforms.macos-arm64"] +checksum = "sha256:509cb27aef747f48faf9bce424f59dcf79572c905204b990ee935bbfcc7fa0e9" +url = "https://github.com/gotestyourself/gotestsum/releases/download/v1.13.0/gotestsum_1.13.0_darwin_arm64.tar.gz" + +[tools.gotestsum."platforms.macos-x64"] +checksum = "sha256:99529350f4c7b780b1efc543ca0d9721b09f0a4228f0efa9281261f58fefa05a" +url = "https://github.com/gotestyourself/gotestsum/releases/download/v1.13.0/gotestsum_1.13.0_darwin_amd64.tar.gz" + +[tools.gotestsum."platforms.windows-x64"] +checksum = "sha256:fd5a6dc69e46a0970593e70d85a7e75f16714e9c61d6d72ccc324eb82df5bb8a" +url = "https://github.com/gotestyourself/gotestsum/releases/download/v1.13.0/gotestsum_1.13.0_windows_amd64.tar.gz" + +[[tools.kubeconform]] +version = "0.6.4" +backend = "aqua:yannh/kubeconform" + +[tools.kubeconform."platforms.linux-arm64"] +checksum = "sha256:582a8a3eb3c33feb065928728ddac6e544c4f0b1234fd78fc1e4c4175a422b22" +url = "https://github.com/yannh/kubeconform/releases/download/v0.6.4/kubeconform-linux-arm64.tar.gz" + +[tools.kubeconform."platforms.linux-arm64-musl"] +checksum = "sha256:582a8a3eb3c33feb065928728ddac6e544c4f0b1234fd78fc1e4c4175a422b22" +url = "https://github.com/yannh/kubeconform/releases/download/v0.6.4/kubeconform-linux-arm64.tar.gz" + +[tools.kubeconform."platforms.linux-x64"] +checksum = "sha256:2b4ebeaa4d5ac4843cf8f7b7e66a8874252b6b71bc7cbfc4ef1cbf85acec7c07" +url = "https://github.com/yannh/kubeconform/releases/download/v0.6.4/kubeconform-linux-amd64.tar.gz" + +[tools.kubeconform."platforms.linux-x64-musl"] +checksum = "sha256:2b4ebeaa4d5ac4843cf8f7b7e66a8874252b6b71bc7cbfc4ef1cbf85acec7c07" +url = "https://github.com/yannh/kubeconform/releases/download/v0.6.4/kubeconform-linux-amd64.tar.gz" + +[tools.kubeconform."platforms.macos-arm64"] +checksum = "sha256:95f9097e54c2c1abe9099d0fedc57a2d5c674b2e32231b901a6e60411899afdd" +url = "https://github.com/yannh/kubeconform/releases/download/v0.6.4/kubeconform-darwin-arm64.tar.gz" + +[tools.kubeconform."platforms.macos-x64"] +checksum = "sha256:805bbc2ab900925be01b8e72039d3689c0a6d4f8aa4b2fad24dd1243387a2b18" +url = "https://github.com/yannh/kubeconform/releases/download/v0.6.4/kubeconform-darwin-amd64.tar.gz" + +[tools.kubeconform."platforms.windows-x64"] +checksum = "sha256:1f6ad9eaab24d14363433897aee4b9049184b10ac3681de0d23105f3a114bf69" +url = "https://github.com/yannh/kubeconform/releases/download/v0.6.4/kubeconform-windows-amd64.zip" + +[[tools.mage]] +version = "1.14.0" +backend = "aqua:magefile/mage" + +[tools.mage."platforms.linux-arm64"] +checksum = "sha256:f9ad70938fbaf15233a574b89f7fa41566102f18114eab9b2aa37d64ad7f21de" +url = "https://github.com/magefile/mage/releases/download/v1.14.0/mage_1.14.0_Linux-ARM64.tar.gz" + +[tools.mage."platforms.linux-arm64-musl"] +checksum = "sha256:f9ad70938fbaf15233a574b89f7fa41566102f18114eab9b2aa37d64ad7f21de" +url = "https://github.com/magefile/mage/releases/download/v1.14.0/mage_1.14.0_Linux-ARM64.tar.gz" + +[tools.mage."platforms.linux-x64"] +checksum = "sha256:a9eb55344ccf6728ab40fe55f809fb7cc0f1085858afd9e594753ed82e59b73f" +url = "https://github.com/magefile/mage/releases/download/v1.14.0/mage_1.14.0_Linux-64bit.tar.gz" + +[tools.mage."platforms.linux-x64-musl"] +checksum = "sha256:a9eb55344ccf6728ab40fe55f809fb7cc0f1085858afd9e594753ed82e59b73f" +url = "https://github.com/magefile/mage/releases/download/v1.14.0/mage_1.14.0_Linux-64bit.tar.gz" + +[tools.mage."platforms.macos-arm64"] +checksum = "sha256:4ff2119161d70c94bca2d5f870f566b5cd7f4ed73c94c92c96f83ed650a7c849" +url = "https://github.com/magefile/mage/releases/download/v1.14.0/mage_1.14.0_macOS-ARM64.tar.gz" + +[tools.mage."platforms.macos-x64"] +checksum = "sha256:f7f4feb2971742caf77fe77553817c2eb9c448422b15a97cc6ab821ce683d610" +url = "https://github.com/magefile/mage/releases/download/v1.14.0/mage_1.14.0_macOS-64bit.tar.gz" + +[tools.mage."platforms.windows-x64"] +checksum = "sha256:28571e0a50955ea4e5a1596908bf98f5e0c345c6696c836cbd2c42e37b16da29" +url = "https://github.com/magefile/mage/releases/download/v1.14.0/mage_1.14.0_Windows-64bit.zip" + +[[tools.shellcheck]] +version = "0.11.0" +backend = "aqua:koalaman/shellcheck" + +[tools.shellcheck."platforms.linux-arm64"] +checksum = "sha256:12b331c1d2db6b9eb13cfca64306b1b157a86eb69db83023e261eaa7e7c14588" +url = "https://github.com/koalaman/shellcheck/releases/download/v0.11.0/shellcheck-v0.11.0.linux.aarch64.tar.xz" + +[tools.shellcheck."platforms.linux-arm64-musl"] +checksum = "sha256:12b331c1d2db6b9eb13cfca64306b1b157a86eb69db83023e261eaa7e7c14588" +url = "https://github.com/koalaman/shellcheck/releases/download/v0.11.0/shellcheck-v0.11.0.linux.aarch64.tar.xz" + +[tools.shellcheck."platforms.linux-x64"] +checksum = "sha256:8c3be12b05d5c177a04c29e3c78ce89ac86f1595681cab149b65b97c4e227198" +url = "https://github.com/koalaman/shellcheck/releases/download/v0.11.0/shellcheck-v0.11.0.linux.x86_64.tar.xz" + +[tools.shellcheck."platforms.linux-x64-musl"] +checksum = "sha256:8c3be12b05d5c177a04c29e3c78ce89ac86f1595681cab149b65b97c4e227198" +url = "https://github.com/koalaman/shellcheck/releases/download/v0.11.0/shellcheck-v0.11.0.linux.x86_64.tar.xz" + +[tools.shellcheck."platforms.macos-arm64"] +checksum = "sha256:56affdd8de5527894dca6dc3d7e0a99a873b0f004d7aabc30ae407d3f48b0a79" +url = "https://github.com/koalaman/shellcheck/releases/download/v0.11.0/shellcheck-v0.11.0.darwin.aarch64.tar.xz" + +[tools.shellcheck."platforms.macos-x64"] +checksum = "sha256:3c89db4edcab7cf1c27bff178882e0f6f27f7afdf54e859fa041fca10febe4c6" +url = "https://github.com/koalaman/shellcheck/releases/download/v0.11.0/shellcheck-v0.11.0.darwin.x86_64.tar.xz" + +[tools.shellcheck."platforms.windows-x64"] +checksum = "sha256:8a4e35ab0b331c85d73567b12f2a444df187f483e5079ceffa6bda1faa2e740e" +url = "https://github.com/koalaman/shellcheck/releases/download/v0.11.0/shellcheck-v0.11.0.zip" + +[[tools.shfmt]] +version = "3.7.0" +backend = "aqua:mvdan/sh" + +[tools.shfmt."platforms.linux-arm64"] +url = "https://github.com/mvdan/sh/releases/download/v3.7.0/shfmt_v3.7.0_linux_arm64" + +[tools.shfmt."platforms.linux-arm64-musl"] +url = "https://github.com/mvdan/sh/releases/download/v3.7.0/shfmt_v3.7.0_linux_arm64" + +[tools.shfmt."platforms.linux-x64"] +url = "https://github.com/mvdan/sh/releases/download/v3.7.0/shfmt_v3.7.0_linux_amd64" + +[tools.shfmt."platforms.linux-x64-musl"] +url = "https://github.com/mvdan/sh/releases/download/v3.7.0/shfmt_v3.7.0_linux_amd64" + +[tools.shfmt."platforms.macos-arm64"] +url = "https://github.com/mvdan/sh/releases/download/v3.7.0/shfmt_v3.7.0_darwin_arm64" + +[tools.shfmt."platforms.macos-x64"] +url = "https://github.com/mvdan/sh/releases/download/v3.7.0/shfmt_v3.7.0_darwin_amd64" + +[tools.shfmt."platforms.windows-x64"] +url = "https://github.com/mvdan/sh/releases/download/v3.7.0/shfmt_v3.7.0_windows_amd64.exe" + +[[tools.terraform]] +version = "1.4.4" +backend = "aqua:hashicorp/terraform" + +[tools.terraform."platforms.linux-arm64"] +checksum = "sha256:f0b4e092f2aa6de3324e5e4b5b51260ecf5e8c2f5335ff7a2ffdc4fb54a8922d" +url = "https://releases.hashicorp.com/terraform/1.4.4/terraform_1.4.4_linux_arm64.zip" + +[tools.terraform."platforms.linux-arm64-musl"] +checksum = "sha256:f0b4e092f2aa6de3324e5e4b5b51260ecf5e8c2f5335ff7a2ffdc4fb54a8922d" +url = "https://releases.hashicorp.com/terraform/1.4.4/terraform_1.4.4_linux_arm64.zip" + +[tools.terraform."platforms.linux-x64"] +checksum = "sha256:67541c1f6631befcc25b764028e5605e59234d4424e60a256518ee1e8dd50593" +url = "https://releases.hashicorp.com/terraform/1.4.4/terraform_1.4.4_linux_amd64.zip" + +[tools.terraform."platforms.linux-x64-musl"] +checksum = "sha256:67541c1f6631befcc25b764028e5605e59234d4424e60a256518ee1e8dd50593" +url = "https://releases.hashicorp.com/terraform/1.4.4/terraform_1.4.4_linux_amd64.zip" + +[tools.terraform."platforms.macos-arm64"] +checksum = "sha256:75602d9ec491982ceabea813569579b2991093a4e0d76b7ca86ffd9b7a2a1d1e" +url = "https://releases.hashicorp.com/terraform/1.4.4/terraform_1.4.4_darwin_arm64.zip" + +[tools.terraform."platforms.macos-x64"] +checksum = "sha256:0303ed9d7e5a225fc2e6fa9bf76fc6574c0c0359f22d5dfc04bc8b3234444f7c" +url = "https://releases.hashicorp.com/terraform/1.4.4/terraform_1.4.4_darwin_amd64.zip" + +[tools.terraform."platforms.windows-x64"] +checksum = "sha256:7903b344b70b8e84aa1107bcb4cbd1227c7c0f455be2343540dd50fb8ec4fc6e" +url = "https://releases.hashicorp.com/terraform/1.4.4/terraform_1.4.4_windows_amd64.zip" + +[[tools.tombi]] +version = "0.7.27" +backend = "aqua:tombi-toml/tombi" + +[tools.tombi."platforms.linux-arm64"] +checksum = "sha256:87528266b4aabbfa324cc4a60361d308a14b676921f0ebcf12946e19c7174c74" +url = "https://github.com/tombi-toml/tombi/releases/download/v0.7.27/tombi-cli-0.7.27-aarch64-unknown-linux-musl.gz" + +[tools.tombi."platforms.linux-arm64-musl"] +checksum = "sha256:87528266b4aabbfa324cc4a60361d308a14b676921f0ebcf12946e19c7174c74" +url = "https://github.com/tombi-toml/tombi/releases/download/v0.7.27/tombi-cli-0.7.27-aarch64-unknown-linux-musl.gz" + +[tools.tombi."platforms.linux-x64"] +checksum = "sha256:e791f39b44ed78031cdb7c6fc64efd831da2492be1889b737c85412b5794d5ad" +url = "https://github.com/tombi-toml/tombi/releases/download/v0.7.27/tombi-cli-0.7.27-x86_64-unknown-linux-musl.gz" + +[tools.tombi."platforms.linux-x64-musl"] +checksum = "sha256:e791f39b44ed78031cdb7c6fc64efd831da2492be1889b737c85412b5794d5ad" +url = "https://github.com/tombi-toml/tombi/releases/download/v0.7.27/tombi-cli-0.7.27-x86_64-unknown-linux-musl.gz" + +[tools.tombi."platforms.macos-arm64"] +checksum = "sha256:d207e5824065d3b09d6ce4453627744195890b1cdb987d70711b46dfba635c42" +url = "https://github.com/tombi-toml/tombi/releases/download/v0.7.27/tombi-cli-0.7.27-aarch64-apple-darwin.gz" + +[tools.tombi."platforms.macos-x64"] +checksum = "sha256:2f8144535288ce92bb1ed577cee5b111fe35a5e82c4876e81d143bb81840dd35" +url = "https://github.com/tombi-toml/tombi/releases/download/v0.7.27/tombi-cli-0.7.27-x86_64-apple-darwin.gz" + +[tools.tombi."platforms.windows-x64"] +checksum = "sha256:ef9c2ff17a5153cb0ebd9bdce72c979f5e0630c36c2f86fc928fc5010443b65e" +url = "https://github.com/tombi-toml/tombi/releases/download/v0.7.27/tombi-cli-0.7.27-x86_64-pc-windows-msvc.zip" diff --git a/mise.devbase.toml b/mise.devbase.toml index 657365b8..e7c3c7c7 100644 --- a/mise.devbase.toml +++ b/mise.devbase.toml @@ -21,5 +21,5 @@ shellcheck = "0.11.0" shfmt = "3.7.0" terraform = "1.4.4" tombi = "0.7.27" -"github:getoutreach/lintroller" = "1.19.0" +"github:getoutreach/lintroller" = "1.20.0" "go:golang.org/x/tools/cmd/goimports" = "0.5.0" diff --git a/mise.lock b/mise.lock index e84280e8..159711c8 100644 --- a/mise.lock +++ b/mise.lock @@ -1,230 +1,60 @@ -[[tools."aqua:fullstorydev/grpcui"]] -version = "1.3.1" -backend = "aqua:fullstorydev/grpcui" -env = ["devbase"] -"platforms.linux-arm64" = { checksum = "sha256:4d2dd6edaa1c52fb0d23183b013772e28ccaf5ec5cae2e12b79239bde9c94962", url = "https://github.com/fullstorydev/grpcui/releases/download/v1.3.1/grpcui_1.3.1_linux_arm64.tar.gz"} -"platforms.linux-x64" = { checksum = "sha256:be6a4b3d0423dd20d1540e30343337bc640ec276098218913479948a93b3d7f1", url = "https://github.com/fullstorydev/grpcui/releases/download/v1.3.1/grpcui_1.3.1_linux_x86_64.tar.gz"} -"platforms.macos-arm64" = { checksum = "sha256:580e72dde1570dae070286acc850b9052a4744483377e8d9b446b94277def515", url = "https://github.com/fullstorydev/grpcui/releases/download/v1.3.1/grpcui_1.3.1_osx_arm64.tar.gz"} -"platforms.macos-x64" = { checksum = "sha256:8b54417a63322f64155e66798ad83176689c71c1abb28a4385683b7e5cd69f88", url = "https://github.com/fullstorydev/grpcui/releases/download/v1.3.1/grpcui_1.3.1_osx_x86_64.tar.gz"} -"platforms.windows-x64" = { checksum = "sha256:ff666b684f51d146599cc3ff26509284bf1af0206fc6dca1cfe908a0da4819cc", url = "https://github.com/fullstorydev/grpcui/releases/download/v1.3.1/grpcui_1.3.1_windows_x86_64.zip"} +# @generated - this file is auto-generated by `mise lock` https://mise.jdx.dev/dev-tools/mise-lock.html [[tools.bats]] version = "1.13.0" backend = "aqua:bats-core/bats-core" -"platforms.linux-arm64" = { url = "https://github.com/bats-core/bats-core/archive/refs/tags/v1.13.0.tar.gz"} -"platforms.linux-x64" = { checksum = "blake3:d34af9fd0f9101d5309b2de31f3d1699e56a574d7d4b5e6380580a9e758a9744", url = "https://github.com/bats-core/bats-core/archive/refs/tags/v1.13.0.tar.gz"} -"platforms.macos-arm64" = { url = "https://github.com/bats-core/bats-core/archive/refs/tags/v1.13.0.tar.gz"} -"platforms.macos-x64" = { url = "https://github.com/bats-core/bats-core/archive/refs/tags/v1.13.0.tar.gz"} - -[[tools.buf]] -version = "1.60.0" -backend = "aqua:bufbuild/buf" -env = ["devbase"] -"platforms.linux-arm64" = { checksum = "sha256:f50e4c4660e86d21558c48c3bc3ae381ed3416ad8bd1dd4445735ac899cacfbc", url = "https://github.com/bufbuild/buf/releases/download/v1.60.0/buf-Linux-aarch64.tar.gz"} -"platforms.linux-x64" = { checksum = "sha256:f3d0588a1376973cdaa59f8daf4d9f41451edfb7f0702710ba2de8889fd6bd47", url = "https://github.com/bufbuild/buf/releases/download/v1.60.0/buf-Linux-x86_64.tar.gz"} -"platforms.macos-arm64" = { checksum = "sha256:31187d9c3005f71556e6babedb5ca851fd4f87299a1158ac2115442f3640952e", url = "https://github.com/bufbuild/buf/releases/download/v1.60.0/buf-Darwin-arm64.tar.gz"} -"platforms.macos-x64" = { checksum = "sha256:62a1b054b532ace02df86a008c92ad78ca54f6abaf5db8c574338d8de741be77", url = "https://github.com/bufbuild/buf/releases/download/v1.60.0/buf-Darwin-x86_64.tar.gz"} -"platforms.windows-x64" = { checksum = "sha256:b242cfa50230f56338bbe5bf18fc855d44907de3675ebdc01a98fbaad0f6f118", url = "https://github.com/bufbuild/buf/releases/download/v1.60.0/buf-Windows-x86_64.zip"} + +[tools.bats."platforms.linux-arm64"] +url = "https://github.com/bats-core/bats-core/archive/refs/tags/v1.13.0.tar.gz" + +[tools.bats."platforms.linux-arm64-musl"] +url = "https://github.com/bats-core/bats-core/archive/refs/tags/v1.13.0.tar.gz" + +[tools.bats."platforms.linux-x64"] +checksum = "blake3:d34af9fd0f9101d5309b2de31f3d1699e56a574d7d4b5e6380580a9e758a9744" +url = "https://github.com/bats-core/bats-core/archive/refs/tags/v1.13.0.tar.gz" + +[tools.bats."platforms.linux-x64-musl"] +url = "https://github.com/bats-core/bats-core/archive/refs/tags/v1.13.0.tar.gz" + +[tools.bats."platforms.macos-arm64"] +url = "https://github.com/bats-core/bats-core/archive/refs/tags/v1.13.0.tar.gz" + +[tools.bats."platforms.macos-x64"] +url = "https://github.com/bats-core/bats-core/archive/refs/tags/v1.13.0.tar.gz" [[tools.circleci]] -version = "0.1.34283" +version = "0.1.34770" backend = "aqua:CircleCI-Public/circleci-cli" -"platforms.linux-arm64" = { checksum = "sha256:f494dd3f9a5cd6202a7d26aa0a5f4f64d2dc6391522c77933ba8ec984602077f", url = "https://github.com/CircleCI-Public/circleci-cli/releases/download/v0.1.34283/circleci-cli_0.1.34283_linux_arm64.tar.gz"} -"platforms.linux-x64" = { checksum = "sha256:30ee7b5d9fb4278585f33bce3323ad1df027a6f6a37fd1508f7077856f68168a", url = "https://github.com/CircleCI-Public/circleci-cli/releases/download/v0.1.34283/circleci-cli_0.1.34283_linux_amd64.tar.gz"} -"platforms.macos-arm64" = { checksum = "sha256:896684164f9c3a09d2bcc7e7242a3b7a0992ae850a4d78d0e973ca630e319146", url = "https://github.com/CircleCI-Public/circleci-cli/releases/download/v0.1.34283/circleci-cli_0.1.34283_darwin_amd64.tar.gz"} -"platforms.macos-x64" = { checksum = "sha256:896684164f9c3a09d2bcc7e7242a3b7a0992ae850a4d78d0e973ca630e319146", url = "https://github.com/CircleCI-Public/circleci-cli/releases/download/v0.1.34283/circleci-cli_0.1.34283_darwin_amd64.tar.gz"} -"platforms.windows-x64" = { checksum = "sha256:684cf8faa800bc52276defbb65443865f4c55f73a7a69b054989759f06a7d5a2", url = "https://github.com/CircleCI-Public/circleci-cli/releases/download/v0.1.34283/circleci-cli_0.1.34283_windows_amd64.zip"} - -[[tools.github-cli]] -version = "2.83.2" -backend = "aqua:cli/cli" -env = ["devbase"] -"platforms.linux-arm64" = { checksum = "sha256:b1a0c0a0fcf18524e36996caddc92a062355ed014defc836203fe20fba75a38e", url = "https://github.com/cli/cli/releases/download/v2.83.2/gh_2.83.2_linux_arm64.tar.gz"} -"platforms.linux-x64" = { checksum = "sha256:ca6e7641214fbd0e21429cec4b64a7ba626fd946d8f9d6d191467545b092015e", url = "https://github.com/cli/cli/releases/download/v2.83.2/gh_2.83.2_linux_amd64.tar.gz"} -"platforms.macos-arm64" = { checksum = "sha256:ba3e0396ebbc8da17256144ddda503e4e79c8b502166335569f8390d6b75fa8d", url = "https://github.com/cli/cli/releases/download/v2.83.2/gh_2.83.2_macOS_arm64.zip"} -"platforms.macos-x64" = { checksum = "sha256:6f1712519ccc768946791dc97da407bf188582345b73fef3d604d050ebf6f614", url = "https://github.com/cli/cli/releases/download/v2.83.2/gh_2.83.2_macOS_amd64.zip"} -"platforms.windows-x64" = { checksum = "sha256:b95bf2d953e3bf497bb2c0aed97ffcc5ed8471b80f0920d663a92a6111f05135", url = "https://github.com/cli/cli/releases/download/v2.83.2/gh_2.83.2_windows_amd64.zip"} - -[[tools."github:getoutreach/ci"]] -version = "1.6.14" -backend = "github:getoutreach/ci" -env = ["devbase"] -"platforms.linux-arm64" = { checksum = "sha256:22f3349aa67028201bdb1691dfb8833ef39e4f7229c9aa73ecda9b88a91cc2ac", url = "https://github.com/getoutreach/ci/releases/download/v1.6.14/ci_1.6.14_linux_arm64.tar.gz", url_api = "https://api.github.com/repos/getoutreach/ci/releases/assets/331854918"} -"platforms.linux-x64" = { checksum = "sha256:a8bbc112b45bdbc713397eff318b317e248288d9bc277598794a25173d83e1be", url = "https://github.com/getoutreach/ci/releases/download/v1.6.14/ci_1.6.14_linux_amd64.tar.gz", url_api = "https://api.github.com/repos/getoutreach/ci/releases/assets/331854916"} -"platforms.macos-arm64" = { checksum = "sha256:0df9e9ffc39585dbc85ba6d9da8fd62924e8eae86c172c71377b84df3e5f2572", url = "https://github.com/getoutreach/ci/releases/download/v1.6.14/ci_1.6.14_darwin_arm64.tar.gz", url_api = "https://api.github.com/repos/getoutreach/ci/releases/assets/331854914"} -"platforms.macos-x64" = { checksum = "sha256:a27dfecb63877d3f25c3a0c0a1cbb60352e58d234df8e1cc81fe77169d6c7cb9", url = "https://github.com/getoutreach/ci/releases/download/v1.6.14/ci_1.6.14_darwin_amd64.tar.gz", url_api = "https://api.github.com/repos/getoutreach/ci/releases/assets/331854925"} - -[[tools."github:getoutreach/lintroller"]] -version = "1.19.0" -backend = "github:getoutreach/lintroller" -env = ["devbase"] -"platforms.linux-arm64" = { checksum = "sha256:6b8e6f6e5d2f9af6d1238819252407d5e07c1d1d8c097f3a820de75060c2b443", url = "https://github.com/getoutreach/lintroller/releases/download/v1.19.0/lintroller_1.19.0_linux_arm64.tar.gz", url_api = "https://api.github.com/repos/getoutreach/lintroller/releases/assets/332233163"} -"platforms.linux-x64" = { checksum = "sha256:dfb7acb53a7db25badb780efe054e2eeafa8f0f221c378dbb77726531d37ef9f", url = "https://github.com/getoutreach/lintroller/releases/download/v1.19.0/lintroller_1.19.0_linux_amd64.tar.gz", url_api = "https://api.github.com/repos/getoutreach/lintroller/releases/assets/332233180"} -"platforms.macos-arm64" = { checksum = "sha256:c55dd07f4f7ddeeea2b169cb552a627f26e6a33019afd9c186dbacaea24eb931", url = "https://github.com/getoutreach/lintroller/releases/download/v1.19.0/lintroller_1.19.0_darwin_arm64.tar.gz", url_api = "https://api.github.com/repos/getoutreach/lintroller/releases/assets/332233170"} -"platforms.macos-x64" = { checksum = "sha256:f1b854bea8c6d7ddd96f561738be2f1dee73d91154bb3c6eddbcb848ff0943e1", url = "https://github.com/getoutreach/lintroller/releases/download/v1.19.0/lintroller_1.19.0_darwin_amd64.tar.gz", url_api = "https://api.github.com/repos/getoutreach/lintroller/releases/assets/332233149"} - -[[tools."github:getoutreach/orc"]] -version = "1.122.0" -backend = "github:getoutreach/orc" -env = ["devbase"] -"platforms.linux-arm64" = { checksum = "sha256:e09e6d42ded7d7ef3881fd59a2a93f133c9a64d6d24b1c6d0494e1bc10396111", url = "https://github.com/getoutreach/orc/releases/download/v1.122.0/orc_1.122.0_linux_arm64.tar.gz", url_api = "https://api.github.com/repos/getoutreach/orc/releases/assets/324431840"} -"platforms.linux-x64" = { checksum = "sha256:1267c41533bcde798efe17df5acb73d0124bec21e7b28c8ff100a44f94ae8ea4", url = "https://github.com/getoutreach/orc/releases/download/v1.122.0/orc_1.122.0_linux_amd64.tar.gz", url_api = "https://api.github.com/repos/getoutreach/orc/releases/assets/324431854"} -"platforms.macos-arm64" = { checksum = "sha256:6b589499c7f1f69f8b00c95766502654fcf8882f9f5e332a13cdd1723f324984", url = "https://github.com/getoutreach/orc/releases/download/v1.122.0/orc_1.122.0_darwin_arm64.tar.gz", url_api = "https://api.github.com/repos/getoutreach/orc/releases/assets/324431846"} -"platforms.macos-x64" = { checksum = "sha256:d728675288ea004b808d72559a32d6a367c8082ded93c530c157067234d79a8d", url = "https://github.com/getoutreach/orc/releases/download/v1.122.0/orc_1.122.0_darwin_amd64.tar.gz", url_api = "https://api.github.com/repos/getoutreach/orc/releases/assets/324431863"} - -[[tools.go]] -version = "1.25.7" -backend = "core:go" -"platforms.linux-arm64" = { checksum = "sha256:ba611a53534135a81067240eff9508cd7e256c560edd5d8c2fef54f083c07129", url = "https://dl.google.com/go/go1.25.7.linux-arm64.tar.gz"} -"platforms.linux-x64" = { checksum = "sha256:12e6d6a191091ae27dc31f6efc630e3a3b8ba409baf3573d955b196fdf086005", url = "https://dl.google.com/go/go1.25.7.linux-amd64.tar.gz"} -"platforms.macos-arm64" = { checksum = "sha256:ff18369ffad05c57d5bed888b660b31385f3c913670a83ef557cdfd98ea9ae1b", url = "https://dl.google.com/go/go1.25.7.darwin-arm64.tar.gz"} -"platforms.macos-x64" = { checksum = "sha256:bf5050a2152f4053837b886e8d9640c829dbacbc3370f913351eb0904cb706f5", url = "https://dl.google.com/go/go1.25.7.darwin-amd64.tar.gz"} -"platforms.windows-x64" = { checksum = "sha256:c75e5f4ff62d085cc0017be3ad19d5536f46825fa05db06ec468941f847e3228", url = "https://dl.google.com/go/go1.25.7.windows-amd64.zip"} - -[[tools.go-jsonnet]] -version = "0.19.1" -backend = "aqua:google/go-jsonnet" -env = ["devbase"] -"platforms.linux-arm64" = { checksum = "sha256:b722400231c058623dce9eea52ee55460f05d93929276b3775ec8745e4f17a39", url = "https://github.com/google/go-jsonnet/releases/download/v0.19.1/go-jsonnet_0.19.1_Linux_arm64.tar.gz"} -"platforms.linux-x64" = { checksum = "sha256:80595aaec41f8c65b1fee503dc171ecc1d4706a37b5c4dd7d5c24cf2072deda5", url = "https://github.com/google/go-jsonnet/releases/download/v0.19.1/go-jsonnet_0.19.1_Linux_x86_64.tar.gz"} -"platforms.macos-arm64" = { checksum = "sha256:c7a98187b4b167e9e885dba52138ed802d4db4635b47b95af6a82448ff9d7ba1", url = "https://github.com/google/go-jsonnet/releases/download/v0.19.1/go-jsonnet_0.19.1_Darwin_arm64.tar.gz"} -"platforms.macos-x64" = { checksum = "sha256:d7196ca4d29f638dffcd616cd9498f359d731466920393ee87069c84ae5eea31", url = "https://github.com/google/go-jsonnet/releases/download/v0.19.1/go-jsonnet_0.19.1_Darwin_x86_64.tar.gz"} -"platforms.windows-x64" = { checksum = "sha256:16166b82b8764818baeda37806419007c72c82741c9bb6970703ea9fe71e2f80", url = "https://github.com/google/go-jsonnet/releases/download/v0.19.1/go-jsonnet_0.19.1_Windows_x86_64.tar.gz"} - -[[tools."go:github.com/go-delve/delve/cmd/dlv"]] -version = "1.26.0" -backend = "go:github.com/go-delve/delve/cmd/dlv" -env = ["devbase"] - -[[tools."go:github.com/mattn/goveralls"]] -version = "0.0.11" -backend = "go:github.com/mattn/goveralls" -env = ["devbase"] - -[[tools."go:golang.org/x/tools/cmd/goimports"]] -version = "0.5.0" -backend = "go:golang.org/x/tools/cmd/goimports" -env = ["devbase"] - -[[tools.gofumpt]] -version = "0.9.2" -backend = "aqua:mvdan/gofumpt" -env = ["devbase"] -"platforms.linux-arm64" = { checksum = "sha256:5acaa5a554050f55fc81ef02a8b0d14ab6b3c058a84513885286dc52d3451645", url = "https://github.com/mvdan/gofumpt/releases/download/v0.9.2/gofumpt_v0.9.2_linux_arm64"} -"platforms.linux-x64" = { checksum = "sha256:72cf61b12fef91eab6df6db4a4284f30616b5ead330112e28a1fa1cb15e57339", url = "https://github.com/mvdan/gofumpt/releases/download/v0.9.2/gofumpt_v0.9.2_linux_amd64"} -"platforms.macos-arm64" = { checksum = "sha256:c241fb742599a6cb0563d7377f59def65d451b23dd718dbc6ddf4ab5e695e8f1", url = "https://github.com/mvdan/gofumpt/releases/download/v0.9.2/gofumpt_v0.9.2_darwin_arm64"} -"platforms.macos-x64" = { checksum = "sha256:4172b912ec514038605f334fef9ed7b3f12ca3e40024cb0a622eab3073a55e57", url = "https://github.com/mvdan/gofumpt/releases/download/v0.9.2/gofumpt_v0.9.2_darwin_amd64"} -"platforms.windows-x64" = { checksum = "sha256:067236b55a8ef4547ddc7d78fbb7a38169de15bab02a1763cde6a132c59dd35c", url = "https://github.com/mvdan/gofumpt/releases/download/v0.9.2/gofumpt_v0.9.2_windows_amd64.exe"} - -[[tools.gojq]] -version = "0.12.18" -backend = "aqua:itchyny/gojq" -env = ["devbase"] -"platforms.linux-arm64" = { checksum = "sha256:519601a973cc74621d0ee775a86cac791f45bb69a78bd1901aadd46701b4c571", url = "https://github.com/itchyny/gojq/releases/download/v0.12.18/gojq_v0.12.18_linux_arm64.tar.gz"} -"platforms.linux-x64" = { checksum = "sha256:7f00d3e5336749139199e650bcad89b93341b871f211a34e02fca79e59d5eb45", url = "https://github.com/itchyny/gojq/releases/download/v0.12.18/gojq_v0.12.18_linux_amd64.tar.gz"} -"platforms.macos-arm64" = { checksum = "sha256:bb3794b179f45534120ae5834077c9d1114913bd014ffaa1e24856920d4ab331", url = "https://github.com/itchyny/gojq/releases/download/v0.12.18/gojq_v0.12.18_darwin_arm64.zip"} -"platforms.macos-x64" = { checksum = "sha256:6ca887b755e7c22330c64fe4cf9d974c19e9c1f081d362d8e4f0bf26f1635eda", url = "https://github.com/itchyny/gojq/releases/download/v0.12.18/gojq_v0.12.18_darwin_amd64.zip"} -"platforms.windows-x64" = { checksum = "sha256:ecf343e99fb0190fede177becd6e8602386c801c0a98c7e10905a8d832f612d8", url = "https://github.com/itchyny/gojq/releases/download/v0.12.18/gojq_v0.12.18_windows_amd64.zip"} - -[[tools.golangci-lint]] -version = "2.9.0" -backend = "aqua:golangci/golangci-lint" -env = ["devbase"] -"platforms.linux-arm64" = { checksum = "sha256:94e80cdb51c73c20a313bd3afa1fb23137728813c19fd730248a1e8678fcc46d", url = "https://github.com/golangci/golangci-lint/releases/download/v2.9.0/golangci-lint-2.9.0-linux-arm64.tar.gz"} -"platforms.linux-x64" = { checksum = "sha256:493aaaca2eba6c8bcef847d92716bbd91bbac4b22cdbb0ab5b6a581b32946091", url = "https://github.com/golangci/golangci-lint/releases/download/v2.9.0/golangci-lint-2.9.0-linux-amd64.tar.gz"} -"platforms.macos-arm64" = { checksum = "sha256:a86eabba3507deddd21f2a01a1df2a0ee5bc5c8178d4165cdcaaad8597358760", url = "https://github.com/golangci/golangci-lint/releases/download/v2.9.0/golangci-lint-2.9.0-darwin-arm64.tar.gz"} -"platforms.macos-x64" = { checksum = "sha256:ba29a353be54a74c45946763983808dc8305eeeca73db1761b5ab112f87f8157", url = "https://github.com/golangci/golangci-lint/releases/download/v2.9.0/golangci-lint-2.9.0-darwin-amd64.tar.gz"} -"platforms.windows-x64" = { checksum = "sha256:130fca8fa959eb840267c5e231f030a948e0de1e768bf6a31785505d1061632c", url = "https://github.com/golangci/golangci-lint/releases/download/v2.9.0/golangci-lint-2.9.0-windows-amd64.zip"} - -[[tools.goreleaser]] -version = "1.20.0" -backend = "aqua:goreleaser/goreleaser" -env = ["devbase"] -"platforms.linux-x64" = { checksum = "sha256:66eb0a200e34c750b70c5baa287b661b167c5448e3871114b7e2bec5ea3a395c", url = "https://github.com/goreleaser/goreleaser/releases/download/v1.20.0/goreleaser_Linux_x86_64.tar.gz"} - -[[tools.gotestsum]] -version = "1.13.0" -backend = "aqua:gotestyourself/gotestsum" -env = ["devbase"] -"platforms.linux-arm64" = { checksum = "sha256:7644a4c5cd1bb978d56245aeab25a586ac5ac62adebed20a399548867c13499d", url = "https://github.com/gotestyourself/gotestsum/releases/download/v1.13.0/gotestsum_1.13.0_linux_arm64.tar.gz"} -"platforms.linux-x64" = { checksum = "sha256:11ccddeaf708ef228889f9fe2f68291a75b27013ddfc3b18156e094f5f40e8ee", url = "https://github.com/gotestyourself/gotestsum/releases/download/v1.13.0/gotestsum_1.13.0_linux_amd64.tar.gz"} -"platforms.macos-arm64" = { checksum = "sha256:509cb27aef747f48faf9bce424f59dcf79572c905204b990ee935bbfcc7fa0e9", url = "https://github.com/gotestyourself/gotestsum/releases/download/v1.13.0/gotestsum_1.13.0_darwin_arm64.tar.gz"} -"platforms.macos-x64" = { checksum = "sha256:99529350f4c7b780b1efc543ca0d9721b09f0a4228f0efa9281261f58fefa05a", url = "https://github.com/gotestyourself/gotestsum/releases/download/v1.13.0/gotestsum_1.13.0_darwin_amd64.tar.gz"} -"platforms.windows-x64" = { checksum = "sha256:fd5a6dc69e46a0970593e70d85a7e75f16714e9c61d6d72ccc324eb82df5bb8a", url = "https://github.com/gotestyourself/gotestsum/releases/download/v1.13.0/gotestsum_1.13.0_windows_amd64.tar.gz"} - -[[tools.kubeconform]] -version = "0.6.4" -backend = "aqua:yannh/kubeconform" -env = ["devbase"] -"platforms.linux-arm64" = { checksum = "sha256:582a8a3eb3c33feb065928728ddac6e544c4f0b1234fd78fc1e4c4175a422b22", url = "https://github.com/yannh/kubeconform/releases/download/v0.6.4/kubeconform-linux-arm64.tar.gz"} -"platforms.linux-x64" = { checksum = "sha256:2b4ebeaa4d5ac4843cf8f7b7e66a8874252b6b71bc7cbfc4ef1cbf85acec7c07", url = "https://github.com/yannh/kubeconform/releases/download/v0.6.4/kubeconform-linux-amd64.tar.gz"} -"platforms.macos-arm64" = { checksum = "sha256:95f9097e54c2c1abe9099d0fedc57a2d5c674b2e32231b901a6e60411899afdd", url = "https://github.com/yannh/kubeconform/releases/download/v0.6.4/kubeconform-darwin-arm64.tar.gz"} -"platforms.macos-x64" = { checksum = "sha256:805bbc2ab900925be01b8e72039d3689c0a6d4f8aa4b2fad24dd1243387a2b18", url = "https://github.com/yannh/kubeconform/releases/download/v0.6.4/kubeconform-darwin-amd64.tar.gz"} -"platforms.windows-x64" = { checksum = "sha256:1f6ad9eaab24d14363433897aee4b9049184b10ac3681de0d23105f3a114bf69", url = "https://github.com/yannh/kubeconform/releases/download/v0.6.4/kubeconform-windows-amd64.zip"} - -[[tools.mage]] -version = "1.14.0" -backend = "aqua:magefile/mage" -env = ["devbase"] -"platforms.linux-arm64" = { checksum = "sha256:f9ad70938fbaf15233a574b89f7fa41566102f18114eab9b2aa37d64ad7f21de", url = "https://github.com/magefile/mage/releases/download/v1.14.0/mage_1.14.0_Linux-ARM64.tar.gz"} -"platforms.linux-x64" = { checksum = "sha256:a9eb55344ccf6728ab40fe55f809fb7cc0f1085858afd9e594753ed82e59b73f", url = "https://github.com/magefile/mage/releases/download/v1.14.0/mage_1.14.0_Linux-64bit.tar.gz"} -"platforms.macos-arm64" = { checksum = "sha256:4ff2119161d70c94bca2d5f870f566b5cd7f4ed73c94c92c96f83ed650a7c849", url = "https://github.com/magefile/mage/releases/download/v1.14.0/mage_1.14.0_macOS-ARM64.tar.gz"} -"platforms.macos-x64" = { checksum = "sha256:f7f4feb2971742caf77fe77553817c2eb9c448422b15a97cc6ab821ce683d610", url = "https://github.com/magefile/mage/releases/download/v1.14.0/mage_1.14.0_macOS-64bit.tar.gz"} -"platforms.windows-x64" = { checksum = "sha256:28571e0a50955ea4e5a1596908bf98f5e0c345c6696c836cbd2c42e37b16da29", url = "https://github.com/magefile/mage/releases/download/v1.14.0/mage_1.14.0_Windows-64bit.zip"} - -[[tools.node]] -version = "22.22.0" -backend = "core:node" -"platforms.linux-arm64" = { checksum = "sha256:25ba95dfb96871fa2ef977f11f95ea90818c8fa15c0f2110771db08d4ba423be", url = "https://nodejs.org/dist/v22.22.0/node-v22.22.0-linux-arm64.tar.gz"} -"platforms.linux-x64" = { checksum = "sha256:c33c39ed9c80deddde77c960d00119918b9e352426fd604ba41638d6526a4744", url = "https://nodejs.org/dist/v22.22.0/node-v22.22.0-linux-x64.tar.gz"} -"platforms.macos-arm64" = { checksum = "sha256:5ed4db0fcf1eaf84d91ad12462631d73bf4576c1377e192d222e48026a902640", url = "https://nodejs.org/dist/v22.22.0/node-v22.22.0-darwin-arm64.tar.gz"} -"platforms.macos-x64" = { checksum = "sha256:5ea50c9d6dea3dfa3abb66b2656f7a4e1c8cef23432b558d45fb538c7b5dedce", url = "https://nodejs.org/dist/v22.22.0/node-v22.22.0-darwin-x64.tar.gz"} -"platforms.windows-x64" = { checksum = "sha256:c97fa376d2becdc8863fcd3ca2dd9a83a9f3468ee7ccf7a6d076ec66a645c77a", url = "https://nodejs.org/dist/v22.22.0/node-v22.22.0-win-x64.zip"} + +[tools.circleci."platforms.linux-arm64"] +checksum = "sha256:be4115d2bc87d616ea47ed68d621980f62671bd21bdb6b5a6109215cc70290c2" +url = "https://github.com/CircleCI-Public/circleci-cli/releases/download/v0.1.34770/circleci-cli_0.1.34770_linux_arm64.tar.gz" + +[tools.circleci."platforms.linux-arm64-musl"] +checksum = "sha256:be4115d2bc87d616ea47ed68d621980f62671bd21bdb6b5a6109215cc70290c2" +url = "https://github.com/CircleCI-Public/circleci-cli/releases/download/v0.1.34770/circleci-cli_0.1.34770_linux_arm64.tar.gz" + +[tools.circleci."platforms.linux-x64"] +checksum = "sha256:347d6941a6b48b5c1cf605e9948deafb9d75469d9518b69794acdc09b4f2e218" +url = "https://github.com/CircleCI-Public/circleci-cli/releases/download/v0.1.34770/circleci-cli_0.1.34770_linux_amd64.tar.gz" + +[tools.circleci."platforms.linux-x64-musl"] +checksum = "sha256:347d6941a6b48b5c1cf605e9948deafb9d75469d9518b69794acdc09b4f2e218" +url = "https://github.com/CircleCI-Public/circleci-cli/releases/download/v0.1.34770/circleci-cli_0.1.34770_linux_amd64.tar.gz" + +[tools.circleci."platforms.macos-arm64"] +checksum = "sha256:3c645d41bf32ec334648c747e8f4f1ff6edff341c6db86b74c5f13fb231e9915" +url = "https://github.com/CircleCI-Public/circleci-cli/releases/download/v0.1.34770/circleci-cli_0.1.34770_darwin_amd64.tar.gz" + +[tools.circleci."platforms.macos-x64"] +checksum = "sha256:3c645d41bf32ec334648c747e8f4f1ff6edff341c6db86b74c5f13fb231e9915" +url = "https://github.com/CircleCI-Public/circleci-cli/releases/download/v0.1.34770/circleci-cli_0.1.34770_darwin_amd64.tar.gz" + +[tools.circleci."platforms.windows-x64"] +checksum = "sha256:9b1dc24176a0239244ea74037582b8fa2439848cec3a3abcb04cc024a5515740" +url = "https://github.com/CircleCI-Public/circleci-cli/releases/download/v0.1.34770/circleci-cli_0.1.34770_windows_amd64.zip" [[tools."npm:prettier"]] version = "2.8.8" backend = "npm:prettier" - -[[tools.protoc]] -version = "21.5" -backend = "aqua:protocolbuffers/protobuf/protoc" - -[[tools.shellcheck]] -version = "0.11.0" -backend = "aqua:koalaman/shellcheck" -env = ["devbase"] -"platforms.linux-arm64" = { checksum = "sha256:12b331c1d2db6b9eb13cfca64306b1b157a86eb69db83023e261eaa7e7c14588", url = "https://github.com/koalaman/shellcheck/releases/download/v0.11.0/shellcheck-v0.11.0.linux.aarch64.tar.xz"} -"platforms.linux-x64" = { checksum = "sha256:8c3be12b05d5c177a04c29e3c78ce89ac86f1595681cab149b65b97c4e227198", url = "https://github.com/koalaman/shellcheck/releases/download/v0.11.0/shellcheck-v0.11.0.linux.x86_64.tar.xz"} -"platforms.macos-arm64" = { checksum = "sha256:56affdd8de5527894dca6dc3d7e0a99a873b0f004d7aabc30ae407d3f48b0a79", url = "https://github.com/koalaman/shellcheck/releases/download/v0.11.0/shellcheck-v0.11.0.darwin.aarch64.tar.xz"} -"platforms.macos-x64" = { checksum = "sha256:3c89db4edcab7cf1c27bff178882e0f6f27f7afdf54e859fa041fca10febe4c6", url = "https://github.com/koalaman/shellcheck/releases/download/v0.11.0/shellcheck-v0.11.0.darwin.x86_64.tar.xz"} -"platforms.windows-x64" = { checksum = "sha256:8a4e35ab0b331c85d73567b12f2a444df187f483e5079ceffa6bda1faa2e740e", url = "https://github.com/koalaman/shellcheck/releases/download/v0.11.0/shellcheck-v0.11.0.zip"} - -[[tools.shfmt]] -version = "3.7.0" -backend = "aqua:mvdan/sh" -env = ["devbase"] -"platforms.linux-arm64" = { url = "https://github.com/mvdan/sh/releases/download/v3.7.0/shfmt_v3.7.0_linux_arm64"} -"platforms.linux-x64" = { url = "https://github.com/mvdan/sh/releases/download/v3.7.0/shfmt_v3.7.0_linux_amd64"} -"platforms.macos-arm64" = { url = "https://github.com/mvdan/sh/releases/download/v3.7.0/shfmt_v3.7.0_darwin_arm64"} -"platforms.macos-x64" = { url = "https://github.com/mvdan/sh/releases/download/v3.7.0/shfmt_v3.7.0_darwin_amd64"} -"platforms.windows-x64" = { url = "https://github.com/mvdan/sh/releases/download/v3.7.0/shfmt_v3.7.0_windows_amd64.exe"} - -[[tools.terraform]] -version = "1.4.4" -backend = "aqua:hashicorp/terraform" -env = ["devbase"] -"platforms.linux-arm64" = { checksum = "sha256:f0b4e092f2aa6de3324e5e4b5b51260ecf5e8c2f5335ff7a2ffdc4fb54a8922d", url = "https://releases.hashicorp.com/terraform/1.4.4/terraform_1.4.4_linux_arm64.zip"} -"platforms.linux-x64" = { checksum = "sha256:67541c1f6631befcc25b764028e5605e59234d4424e60a256518ee1e8dd50593", url = "https://releases.hashicorp.com/terraform/1.4.4/terraform_1.4.4_linux_amd64.zip"} -"platforms.macos-arm64" = { checksum = "sha256:75602d9ec491982ceabea813569579b2991093a4e0d76b7ca86ffd9b7a2a1d1e", url = "https://releases.hashicorp.com/terraform/1.4.4/terraform_1.4.4_darwin_arm64.zip"} -"platforms.macos-x64" = { checksum = "sha256:0303ed9d7e5a225fc2e6fa9bf76fc6574c0c0359f22d5dfc04bc8b3234444f7c", url = "https://releases.hashicorp.com/terraform/1.4.4/terraform_1.4.4_darwin_amd64.zip"} -"platforms.windows-x64" = { checksum = "sha256:7903b344b70b8e84aa1107bcb4cbd1227c7c0f455be2343540dd50fb8ec4fc6e", url = "https://releases.hashicorp.com/terraform/1.4.4/terraform_1.4.4_windows_amd64.zip"} - -[[tools.tombi]] -version = "0.7.27" -backend = "aqua:tombi-toml/tombi" -env = ["devbase"] -"platforms.linux-arm64" = { checksum = "sha256:87528266b4aabbfa324cc4a60361d308a14b676921f0ebcf12946e19c7174c74", url = "https://github.com/tombi-toml/tombi/releases/download/v0.7.27/tombi-cli-0.7.27-aarch64-unknown-linux-musl.gz"} -"platforms.linux-x64" = { checksum = "sha256:e791f39b44ed78031cdb7c6fc64efd831da2492be1889b737c85412b5794d5ad", url = "https://github.com/tombi-toml/tombi/releases/download/v0.7.27/tombi-cli-0.7.27-x86_64-unknown-linux-musl.gz"} -"platforms.macos-arm64" = { checksum = "sha256:d207e5824065d3b09d6ce4453627744195890b1cdb987d70711b46dfba635c42", url = "https://github.com/tombi-toml/tombi/releases/download/v0.7.27/tombi-cli-0.7.27-aarch64-apple-darwin.gz"} -"platforms.macos-x64" = { checksum = "sha256:2f8144535288ce92bb1ed577cee5b111fe35a5e82c4876e81d143bb81840dd35", url = "https://github.com/tombi-toml/tombi/releases/download/v0.7.27/tombi-cli-0.7.27-x86_64-apple-darwin.gz"} -"platforms.windows-x64" = { checksum = "sha256:ef9c2ff17a5153cb0ebd9bdce72c979f5e0630c36c2f86fc928fc5010443b65e", url = "https://github.com/tombi-toml/tombi/releases/download/v0.7.27/tombi-cli-0.7.27-x86_64-pc-windows-msvc.zip"} diff --git a/root/Makefile b/root/Makefile index d9bc26c1..2c3c60ce 100644 --- a/root/Makefile +++ b/root/Makefile @@ -115,12 +115,12 @@ build:: pre-build gobuild lint:: pre-test pre-lint @# Note that this requires the ensure_asdf.sh invocation at the top of @# this file. - $(BASE_TEST_ENV) ./scripts/shell-wrapper.sh linters.sh + $(BASE_TEST_ENV) ./scripts/shell-wrapper.sh mise.sh exec -- ./scripts/shell-wrapper.sh linters.sh ## test: run unit tests .PHONY: test test:: pre-test lint - $(BASE_TEST_ENV) ./scripts/shell-wrapper.sh test.sh + $(BASE_TEST_ENV) ./scripts/shell-wrapper.sh mise.sh exec -- ./scripts/shell-wrapper.sh test.sh ## test-e2e: run only e2e test (use inside a dev pod) .PHONY: test-e2e diff --git a/scripts/bash-test-runner.sh b/scripts/bash-test-runner.sh index 07ece94d..c6154fe1 100755 --- a/scripts/bash-test-runner.sh +++ b/scripts/bash-test-runner.sh @@ -6,8 +6,14 @@ set -euo pipefail DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)" DEVBASE_LIB_DIR="$DIR/../shell/lib" -# shellcheck source=../shell/lib/mise/stub.sh -source "$DEVBASE_LIB_DIR/mise/stub.sh" +# shellcheck source=../shell/lib/bootstrap.sh +source "$DEVBASE_LIB_DIR"/bootstrap.sh + +# shellcheck source=../shell/lib/logging.sh +source "$DEVBASE_LIB_DIR"/logging.sh + +# shellcheck source=../shell/lib/shell.sh +source "$DEVBASE_LIB_DIR"/shell.sh # Check if the bats test helpers are installed and usable. if [[ ! -f "$DIR/bats/test_helper/bats-assert/load.bash" ]]; then @@ -28,8 +34,10 @@ if in_ci_environment; then extraArgs+=("--report-formatter" "junit" "--output" "$junitOutputPath") fi -BATS_LIB_PATH="$DIR/bats/test_helper" mise_exec_tool bats "${extraArgs[@]}" "${test_files[@]}" +set +e +"$DIR"/bats.sh "${extraArgs[@]}" "${test_files[@]}" exitCode=$? +set -e # If we're running in CI, move the test-results to the path that gets # uploaded. See shell/test.sh. diff --git a/scripts/bats.sh b/scripts/bats.sh new file mode 100755 index 00000000..29046929 --- /dev/null +++ b/scripts/bats.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash +# Wrapper for running bats in the context of devbase. + +set -euo pipefail + +DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)" +DEVBASE_LIB_DIR="$DIR/../shell/lib" + +# shellcheck source=../shell/lib/mise/stub.sh +source "$DEVBASE_LIB_DIR/mise/stub.sh" + +BATS_LIB_PATH="$DIR/bats/test_helper" mise_exec_tool bats "$@" diff --git a/shell/ci/env/mise.sh b/shell/ci/env/mise.sh index e299966a..3618e8b1 100755 --- a/shell/ci/env/mise.sh +++ b/shell/ci/env/mise.sh @@ -38,15 +38,12 @@ ghToken="$(gh auth token)" # TODO(malept): feature parity with asdf.sh in the same folder. if [[ -f "$repoDir"/mise.toml ]]; then info_sub "🧑‍🍳 installing tool versions via mise" - if [[ -z ${ALLOW_MISE_TO_MANAGE_TOOL_VERSIONS:-} ]]; then - info_sub "🧑‍🍳 ignoring .tool-versions (managed by asdf)" - MISE_GITHUB_TOKEN="$ghToken" \ - MISE_OVERRIDE_TOOL_VERSIONS_FILENAMES="none" \ - mise install --cd "$repoDir" --yes - else + if mise_manages_tool_versions; then info_sub "🧑‍🍳 allowing mise to manage .tool-versions" - MISE_GITHUB_TOKEN="$ghToken" mise install --cd "$repoDir" --yes + else + info_sub "🧑‍🍳 ignoring .tool-versions (managed by asdf)" fi + MISE_GITHUB_TOKEN="$ghToken" run_mise install --cd "$repoDir" --yes fi MISE_GITHUB_TOKEN="$ghToken" devbase_install_mise_tools diff --git a/shell/ci/testing/delibird.sh b/shell/ci/testing/delibird.sh index 498c9717..63819144 100755 --- a/shell/ci/testing/delibird.sh +++ b/shell/ci/testing/delibird.sh @@ -44,7 +44,7 @@ configure_delibird() { mkdir -p "$(dirname "$tokenPath")" # Fetch the delibird token from Vault. - DELIBIRD_TOKEN=$("$(find_vault)" kv get -format=json deploy/delibird/development/upload | jq -r '.data.data.token') + DELIBIRD_TOKEN=$("$(find_vault)" kv get -field token deploy/delibird/development/upload) if [[ -z $DELIBIRD_TOKEN ]]; then echo "Error: Failed to fetch delibird token from Vault." \ "Please ensure that the deploy/delibird/development/upload secret exists and" \ diff --git a/shell/circleci/machine.sh b/shell/circleci/machine.sh index f867a030..d8a70b4b 100755 --- a/shell/circleci/machine.sh +++ b/shell/circleci/machine.sh @@ -31,7 +31,7 @@ fi ensure_mise_installed devbase_configure_global_tools -if [[ $OSTYPE == "darwin"* && -z ${ALLOW_MISE_TO_MANAGE_TOOL_VERSIONS:-} ]] || ! command -v go >/dev/null; then +if ([[ $OSTYPE == "darwin"* ]] && ! mise_manages_tool_versions) || ! command_exists go; then install_tool_with_mise go "$(grep ^golang "$ROOT_DIR/.tool-versions" | awk '{print $2}')" install_tool_with_mise node "$(grep ^nodejs "$ROOT_DIR/.tool-versions" | awk '{print $2}')" fi diff --git a/shell/circleci/setup.sh b/shell/circleci/setup.sh index 193c8cf4..c00c2f8e 100755 --- a/shell/circleci/setup.sh +++ b/shell/circleci/setup.sh @@ -30,7 +30,7 @@ if gh_installed; then bootstrap_github_token fi -if [[ -z $ALLOW_MISE_TO_MANAGE_TOOL_VERSIONS ]]; then +if ! mise_manages_tool_versions; then # Ensure that asdf is ready to be used info "🔨 Setting up asdf" "$CI_DIR/env/asdf.sh" diff --git a/shell/lib/go.sh b/shell/lib/go.sh new file mode 100644 index 00000000..1d8362b6 --- /dev/null +++ b/shell/lib/go.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env bash +# +# Go-related utility functions. + +# Retrieve list of directories containing go.mod files in the repository. +# Use the IGNORED_GO_MOD_DIRS environment variable (space-separated +# directories) to skip specific directories. +go_mod_dirs() { + git ls-files --cached --others --modified --exclude-standard go.mod '**/go.mod' | xargs dirname | while read -r gomodDir; do + for ignored in ${IGNORED_GO_MOD_DIRS:-}; do + if [[ $gomodDir == "$ignored" ]]; then + continue 2 + fi + done + echo "$gomodDir" + done | sort | uniq | xargs echo +} diff --git a/shell/lib/go_test.bats b/shell/lib/go_test.bats new file mode 100644 index 00000000..674b25fc --- /dev/null +++ b/shell/lib/go_test.bats @@ -0,0 +1,47 @@ +#!/usr/bin/env bash + +bats_load_library "bats-support/load.bash" +bats_load_library "bats-assert/load.bash" + +load go.sh +load test_helper.sh + +setup() { + # This points us to use a temp file for a git repo to operate on, as + # opposed to the real one. + REPOPATH=$(mktempdir devbase-lib-go-XXXXXX) + + git init --initial-branch=main "$REPOPATH" + cd "$REPOPATH" || exit 1 + git config user.name "Test User" + git config user.email "testuser@example.com" +} + +teardown() { + rm -rf "$REPOPATH" +} + +@test "go_mod_dirs finds all go.mod files in the repo" { + mkdir -p moduleA moduleB/submodule + touch moduleA/go.mod + touch moduleB/submodule/go.mod + touch go.mod + git add . + + run go_mod_dirs + assert_success + assert_output ". moduleA moduleB/submodule" +} + +@test "go_mod_dirs excludes go.mod files in IGNORED_GO_MOD_DIRS" { + mkdir -p moduleA moduleB/submodule moduleC + touch moduleA/go.mod + touch moduleB/submodule/go.mod + touch moduleC/go.mod + touch go.mod + git add . + + IGNORED_GO_MOD_DIRS="moduleB/submodule moduleC" run go_mod_dirs + assert_success + assert_output ". moduleA" # output is sorted +} diff --git a/shell/lib/mise.sh b/shell/lib/mise.sh index c0e6a831..62ea2302 100644 --- a/shell/lib/mise.sh +++ b/shell/lib/mise.sh @@ -33,8 +33,6 @@ ensure_mise_installed() { "$mise_bin" --version - local mise_manages_tool_versions="${ALLOW_MISE_TO_MANAGE_TOOL_VERSIONS:-}" - if [[ -n $BASH_ENV ]]; then info_sub "Adding mise to BASH_ENV: $BASH_ENV" # shellcheck disable=SC2016 @@ -43,14 +41,14 @@ ensure_mise_installed() { if [[ -z $is_root ]]; then echo 'export PATH="$HOME/.local/bin:$PATH"' fi - if [[ -z $mise_manages_tool_versions ]]; then + if ! mise_manages_tool_versions; then echo 'export MISE_OVERRIDE_TOOL_VERSIONS_FILENAMES=none' fi echo 'eval "$(mise activate bash --shims)"' } >>"$BASH_ENV" fi - if [[ -z $mise_manages_tool_versions ]]; then + if ! mise_manages_tool_versions; then # Let asdf manage .tool-versions for now export MISE_OVERRIDE_TOOL_VERSIONS_FILENAMES=none fi @@ -65,7 +63,7 @@ ensure_mise_installed() { install_mise() { local install_script=/tmp/mise-install.sh - if [[ ! -f $install_script || "$(wc -c "$install_script")" -eq 0 ]]; then + if [[ ! -f $install_script || "$(wc -c "$install_script" | awk '{print $1}')" -eq 0 ]]; then if ! retry 5 5 gpg --keyserver hkps://keys.openpgp.org --recv-keys 0x24853ec9f655ce80b48e6c3a8b81c9d17413a06d; then error "Could not import mise GPG release key" install_mise_via_apt_if_ubuntu_in_ci @@ -85,6 +83,8 @@ install_mise() { run_mise settings set http_retries 3 run_mise settings set lockfile true run_mise settings set use_versions_host_track false + # TODO: remove when the default changes, reportedly in 2026.8.0 + run_mise settings set ruby.compile true } # Fetch a URL via either curl or wget, with retries, with the response body going to stdout. @@ -200,6 +200,12 @@ find_mise() { fi } +# Whether `mise` manages tools declared in `.tool-versions`, in addition to `mise.toml`. +# If not, asdf manages the declared tools. +mise_manages_tool_versions() { + [[ -n ${ALLOW_MISE_TO_MANAGE_TOOL_VERSIONS:-} ]] +} + # run_mise ARGS... # # Runs `mise`. If in CI, `MISE_GITHUB_TOKEN` or `GITHUB_TOKEN` is set, and @@ -209,9 +215,17 @@ run_mise() { local mise_path mise_path="$(find_mise)" if in_ci_environment && [[ -n ${MISE_GITHUB_TOKEN:-} || -n ${GITHUB_TOKEN:-} ]]; then - wait_for_gh_rate_limit + local ghToken="${MISE_GITHUB_TOKEN:-$GITHUB_TOKEN}" + GITHUB_TOKEN="$ghToken" wait_for_gh_rate_limit fi - "$mise_path" "$@" + + local tool_versions_override="" + if ! mise_manages_tool_versions; then + tool_versions_override="none" + fi + + MISE_OVERRIDE_TOOL_VERSIONS_FILENAMES="$tool_versions_override" \ + "$mise_path" "$@" } # If `wait-for-gh-rate-limit` is installed, runs it to wait for diff --git a/shell/linters/go.sh b/shell/linters/go.sh index c11956d2..505151b7 100644 --- a/shell/linters/go.sh +++ b/shell/linters/go.sh @@ -1,6 +1,9 @@ #!/usr/bin/env bash # Linters for Golang +# shellcheck source=../lib/go.sh +source "$DIR/lib/go.sh" + # Why: Used by the script that calls us # shellcheck disable=SC2034 extensions=("go") @@ -24,11 +27,18 @@ gofumpt() { } linter() { - run_command "go mod tidy" go mod tidy -diff || return 1 - # gofmt/goimports/gofumpt checking is done by golangci-lint - run_command "golangci-lint" \ - "$DIR/golangci-lint.sh" --build-tags "or_e2e,or_test" --timeout 10m run ./... || return 1 - run_command "lintroller" lintroller || return 1 + for godir in $(go_mod_dirs); do + pushd "$godir" >/dev/null || return 1 + if [[ $godir != "." ]]; then + info "Linting module in $godir" + fi + run_command "go mod tidy" go mod tidy -diff || return 1 + # gofmt/goimports/gofumpt checking is done by golangci-lint + run_command "golangci-lint" \ + "$DIR/golangci-lint.sh" --build-tags "or_e2e,or_test" --timeout 10m run ./... || return 1 + run_command "lintroller" lintroller || return 1 + popd >/dev/null || return 1 + done } formatter() { @@ -37,13 +47,20 @@ formatter() { if [[ -f "$(get_repo_directory)/go.work" ]]; then run_command "go work use" go work use || return 1 fi - run_command "go mod tidy" go mod tidy || return 1 - if [[ -z $goFormatter || $goFormatter == "null" || $goFormatter == "gofmt" ]]; then - run_command goimports goimports || return 1 - run_command gofmt gofmt || return 1 - elif [[ $goFormatter == gofumpt ]]; then - run_command gofumpt gofumpt || return 1 - else - fatal "Unknown Go formatter: $goFormatter" - fi + for godir in $(go_mod_dirs); do + pushd "$godir" >/dev/null || return 1 + if [[ $godir != "." ]]; then + info "Formatting module in $godir" + fi + run_command "go mod tidy" go mod tidy || return 1 + if [[ -z $goFormatter || $goFormatter == "null" || $goFormatter == "gofmt" ]]; then + run_command goimports goimports || return 1 + run_command gofmt gofmt || return 1 + elif [[ $goFormatter == gofumpt ]]; then + run_command gofumpt gofumpt || return 1 + else + fatal "Unknown Go formatter: $goFormatter" + fi + popd >/dev/null || return 1 + done } diff --git a/shell/mise.sh b/shell/mise.sh index af51f2cf..885aa8d9 100755 --- a/shell/mise.sh +++ b/shell/mise.sh @@ -19,6 +19,7 @@ source "$DEVBASE_LIB_DIR/shell.sh" ensure_mise_installed 1>&2 misePath="$(find_mise)" +ghToken="$(gh auth token)" -wait_for_gh_rate_limit -MISE_GITHUB_TOKEN="$(gh auth token)" exec "$misePath" "$@" +GITHUB_TOKEN="$ghToken" wait_for_gh_rate_limit +MISE_GITHUB_TOKEN="$ghToken" exec "$misePath" "$@" diff --git a/shell/test.sh b/shell/test.sh index 79d1d646..5560bd3b 100755 --- a/shell/test.sh +++ b/shell/test.sh @@ -11,6 +11,9 @@ source "$DIR/lib/bootstrap.sh" # shellcheck source=./lib/github.sh source "$DIR/lib/github.sh" +# shellcheck source=./lib/go.sh +source "$DIR/lib/go.sh" + # shellcheck source=./lib/logging.sh source "$DIR/lib/logging.sh" @@ -102,26 +105,82 @@ SHUFFLE="${SHUFFLE:-enabled}" # is "standard-verbose". TEST_OUTPUT_FORMAT="${TEST_OUTPUT_FORMAT:-}" +# repoDir is the base directory of the repository. +repoDir=$(get_repo_directory) + # Generates the Go toolchain string to be used for E2E tests. # Go 1.25 and later have an issue with code coverage, so we append # "+auto" so that the `covdata` tool is available. # See: https://github.com/golang/go/issues/75031 e2e_go_toolchain() { - local repoDir toolchain - repoDir="$(get_repo_directory)" - toolchain="$(grep ^toolchain "$repoDir/go.mod" | awk '{print $2}')" + local goDir="$1" + local toolchain + toolchain="$(grep ^toolchain "$goDir/go.mod" | awk '{print $2}')" if [[ -z $toolchain ]]; then toolchain="go$(grep ^golang "$repoDir/.tool-versions" | awk '{print $2}')" fi echo "$toolchain+auto" } +go_ldflags() { + echo "-X github.com/getoutreach/go-outreach/v2/pkg/app.Version=testing -X github.com/getoutreach/gobox/pkg/app.Version=testing" +} + +# run_go_tests [args...] +# +# Runs Go tests with gotestsum for the given project directory, +# with optional additional arguments. +run_go_tests() { + local projectDir="$1" + shift + pushd "$projectDir" >/dev/null || fatal "Failed to change directory to $projectDir" + info "Running go test (${TEST_TAGS[*]}) in $projectDir" + local exitCode=0 + + local junitFile + if [[ $projectDir == "." ]]; then + junitFile="$repoDir/bin/unit-tests.xml" + else + # Replace path separators with dashes for the junit file name + local sanitizedDir + sanitizedDir="$(echo "$projectDir" | tr '/' '-')" + junitFile="$repoDir/bin/unit-tests-${sanitizedDir}.xml" + fi + + ( + if [[ ${TEST_TAGS[*]} =~ "or_e2e" ]]; then + # Workaround from https://github.com/golang/go/issues/75031#issuecomment-3195256688 + local toolchain + toolchain="$(e2e_go_toolchain "$projectDir")" + go env -w GOTOOLCHAIN="$toolchain" + info_sub "Running E2E tests with Go toolchain $toolchain" + fi + mise_exec_tool gotestsum --junitfile "$junitFile" --format "$format" -- \ + "${BENCH_FLAGS[@]}" "${COVER_FLAGS[@]}" "${TEST_FLAGS[@]}" \ + -ldflags "$(go_ldflags)" -tags="$test_tags_string" "$@" "${TEST_PACKAGES[@]}" + ) || exitCode=$? + + if in_ci_environment; then + # Move this to a temporary directory so that we can control + # what gets uploaded via the store_test_results call + mv "$junitFile" /tmp/test-results/ + fi + + if [[ $exitCode -ne 0 ]]; then + error "Tests failed in $projectDir with exit code $exitCode" + return $exitCode + fi + popd >/dev/null || fatal "Failed to change directory back from $projectDir" +} + if in_ci_environment; then GOFLAGS+=(-mod=readonly) WITH_COVERAGE="true" - # Ensure that all processes recieve the value of GOFLAGS. + # Ensure that all processes receive the value of GOFLAGS. export GOFLAGS + # Coverage results directory + mkdir -p /tmp/test-results fi # If GO_TEST_TIMEOUT is set, we pass it to `go test` as a timeout. @@ -129,9 +188,6 @@ if [[ -n $GO_TEST_TIMEOUT ]]; then TEST_FLAGS+=(-timeout "$GO_TEST_TIMEOUT") fi -# REPODIR is the base directory of the repository. -REPODIR=$(get_repo_directory) - # Catches test dependencies by shuffling tests if the installed Go version supports it currentver="$(go version | awk '{ print $3 }' | sed 's|go||')" requiredver="1.17.0" @@ -160,8 +216,6 @@ if [[ -e $testInclude ]]; then fi if [[ "$(git ls-files '*_test.go' | wc -l | tr -d ' ')" -gt 0 ]]; then - info "Running go test (${TEST_TAGS[*]})" - format="dots-v2" if in_ci_environment; then # When in CI, always use the pkgname format because it's easier to @@ -201,36 +255,15 @@ if [[ "$(git ls-files '*_test.go' | wc -l | tr -d ' ')" -gt 0 ]]; then # complex linker flags very well right now (v1.7.3). go test -c -o "${TESTBIN}" \ "${BENCH_FLAGS[@]}" "${COVER_FLAGS[@]}" "${TEST_FLAGS[@]}" \ - -ldflags "-X github.com/getoutreach/go-outreach/v2/pkg/app.Version=testing -X github.com/getoutreach/gobox/pkg/app.Version=testing" \ - -tags="$test_tags_string" "$PACKAGE_TO_DEBUG" + -ldflags "$(go_ldflags)" -tags="$test_tags_string" "$PACKAGE_TO_DEBUG" # We pass along command line args to the executable so you can specify # `-test.run `, `-test.bench `, etc. if desired. Try `-help` # for more information. exec "$DIR/dlv.sh" exec "${TESTBIN}" -- "$@" else - exitCode=0 - - ( - if [[ ${TEST_TAGS[*]} =~ "or_e2e" ]]; then - # Workaround from https://github.com/golang/go/issues/75031#issuecomment-3195256688 - toolchain="$(e2e_go_toolchain)" - go env -w GOTOOLCHAIN="$toolchain" - info_sub "Running E2E tests with Go toolchain $toolchain" - fi - mise_exec_tool gotestsum --junitfile "$REPODIR/bin/unit-tests.xml" --format "$format" -- \ - "${BENCH_FLAGS[@]}" "${COVER_FLAGS[@]}" "${TEST_FLAGS[@]}" \ - -ldflags "-X github.com/getoutreach/go-outreach/v2/pkg/app.Version=testing -X github.com/getoutreach/gobox/pkg/app.Version=testing" \ - -tags="$test_tags_string" "$@" "${TEST_PACKAGES[@]}" - ) || exitCode=$? - - if in_ci_environment; then - # Move this to a temporary directory so that we can control - # what gets uploaded via the store_test_results call - mkdir -p /tmp/test-results - mv "$REPODIR/bin/unit-tests.xml" /tmp/test-results/ - fi - - exit $exitCode + for godir in $(go_mod_dirs); do + run_go_tests "$godir" "$@" || fatal "Tests failed in $godir" + done fi fi