diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d10dfe2..afc2560 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -3,11 +3,11 @@ name: Release on: push: tags: - - "v*" + - "grok-dev@*" workflow_dispatch: inputs: version: - description: "Release version to publish (for example v1.1.4)" + description: "Release tag to publish (for example grok-dev@1.1.4)" required: true permissions: @@ -88,8 +88,7 @@ jobs: else tag="${{ github.ref_name }}" fi - tag="${tag#v}" - echo "RELEASE_TAG=v${tag}" >> "$GITHUB_ENV" + echo "RELEASE_TAG=${tag}" >> "$GITHUB_ENV" - name: Download all build artifacts uses: actions/download-artifact@v4 diff --git a/install.sh b/install.sh index 8c7cbdc..6f0f793 100644 --- a/install.sh +++ b/install.sh @@ -227,14 +227,16 @@ maybe_update_path() { resolve_release_version() { if [[ -n "$requested_version" ]]; then - RESOLVED_VERSION="${requested_version#v}" - RELEASE_BASE_URL="https://github.com/${REPO}/releases/download/v${RESOLVED_VERSION}" + RESOLVED_VERSION="${requested_version}" + RELEASE_BASE_URL="https://github.com/${REPO}/releases/download/grok-dev@${RESOLVED_VERSION}" return fi - RESOLVED_VERSION=$(curl -fsSL "${RELEASES_API}/latest" \ - | sed -n 's/.*"tag_name":[[:space:]]*"v\{0,1\}\([^"]*\)".*/\1/p' \ + local tag + tag=$(curl -fsSL "${RELEASES_API}/latest" \ + | sed -n 's/.*"tag_name":[[:space:]]*"\([^"]*\)".*/\1/p' \ | head -n 1) + RESOLVED_VERSION="${tag#grok-dev@}" if [[ -z "$RESOLVED_VERSION" ]]; then echo "Failed to resolve the latest Grok release version." >&2 exit 1 diff --git a/src/utils/install-manager.ts b/src/utils/install-manager.ts index 8e9e717..cd5d969 100644 --- a/src/utils/install-manager.ts +++ b/src/utils/install-manager.ts @@ -332,7 +332,10 @@ async function fetchReleaseJson(url: string): Promise { } function normalizeReleaseVersion(tagName: string): string | null { - return semverValid(tagName.startsWith("v") ? tagName.slice(1) : tagName); + let version = tagName; + if (version.startsWith("grok-dev@")) version = version.slice("grok-dev@".length); + if (version.startsWith("v")) version = version.slice(1); + return semverValid(version); } async function downloadBinary(url: string, dest: string): Promise {