diff --git a/.gitignore b/.gitignore index 8935c9d2..759e3286 100644 --- a/.gitignore +++ b/.gitignore @@ -6,5 +6,6 @@ **/__pycache__ /docs/yarn.lock /releases +/binaries /checksums.txt /.env* diff --git a/.goreleaser.yml b/.goreleaser.yml index dbd8b6d2..5df898e8 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -6,6 +6,7 @@ before: hooks: # Generate UI assets to embedded in binaries - make build-ui + - ./scripts/download-cred-helpers.sh builds: - id: default @@ -21,12 +22,16 @@ builds: - -s - -w - -X "github.com/gptscript-ai/gptscript/pkg/version.Tag=v{{ .Version }}" + hooks: + post: ./scripts/copy-cred-helper.sh {{ .Os }} {{ .Arch }} universal_binaries: - id: mac ids: - default replace: true + hooks: + post: cp binaries/gptscript-credential-osxkeychain releases/mac_darwin_all archives: - id: default @@ -60,6 +65,7 @@ brews: - description: "GPTScript CLI" install: | bin.install "gptscript" + {{ if eq .Os "darwin" }}bin.install "gptscript-credential-osxkeychain"{{ end }} homepage: "https://github.com/gptscript-ai/gptscript" skip_upload: false folder: "Formula" diff --git a/scripts/copy-cred-helper.sh b/scripts/copy-cred-helper.sh new file mode 100755 index 00000000..afe5a74c --- /dev/null +++ b/scripts/copy-cred-helper.sh @@ -0,0 +1,29 @@ +#!/usr/bin/env bash + +set -euo pipefail + +OS="$1" +ARCH="$2" + +case "$OS" in + "darwin") + case "$ARCH" in + "amd64") + cp binaries/gptscript-credential-osxkeychain releases/default_darwin_amd64_v1 + ;; + "arm64") + cp binaries/gptscript-credential-osxkeychain releases/default_darwin_arm64 + ;; + esac + ;; + "windows") + case "$ARCH" in + "amd64") + cp binaries/gptscript-credential-wincred-amd64.exe releases/default_windows_amd64_v1/gptscript-credential-wincred.exe + ;; + "arm64") + cp binaries/gptscript-credential-wincred-arm64.exe releases/default_windows_arm64/gptscript-credential-wincred.exe + ;; + esac + ;; +esac diff --git a/scripts/download-cred-helpers.sh b/scripts/download-cred-helpers.sh new file mode 100755 index 00000000..ae940466 --- /dev/null +++ b/scripts/download-cred-helpers.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash + +set -euo pipefail + +# This script downloads the gptscript-credential-helpers. (For use in CI.) + +GPTSCRIPT_CRED_HELPERS_VERSION="v0.1.0" +BINARY_DIR="binaries" + +mkdir -p "$BINARY_DIR" +cd "$BINARY_DIR" + +wget -O gptscript-credential-osxkeychain "https://github.com/gptscript-ai/gptscript-credential-helpers/releases/download/${GPTSCRIPT_CRED_HELPERS_VERSION}/gptscript-credential-osxkeychain" +chmod +x gptscript-credential-osxkeychain + +wget -O gptscript-credential-wincred-amd64.exe "https://github.com/gptscript-ai/gptscript-credential-helpers/releases/download/${GPTSCRIPT_CRED_HELPERS_VERSION}/gptscript-credential-wincred-${GPTSCRIPT_CRED_HELPERS_VERSION}.windows-amd64.exe" +chmod +x gptscript-credential-wincred-amd64.exe + +wget -O gptscript-credential-wincred-arm64.exe "https://github.com/gptscript-ai/gptscript-credential-helpers/releases/download/${GPTSCRIPT_CRED_HELPERS_VERSION}/gptscript-credential-wincred-${GPTSCRIPT_CRED_HELPERS_VERSION}.windows-arm64.exe" +chmod +x gptscript-credential-wincred-arm64.exe