1$ErrorActionPreference = "Stop"
 2
 3if (-not $env:GITHUB_ACTIONS) {
 4    Write-Error "Error: This script must be run in a GitHub Actions environment"
 5    exit 1
 6}
 7
 8if (-not $env:GITHUB_REF) {
 9    Write-Error "Error: GITHUB_REF is not set"
10    exit 1
11}
12
13$version = & "script/get-crate-version.ps1" "zed"
14$channel = Get-Content "crates/zed/RELEASE_CHANNEL"
15
16Write-Host "Publishing version: $version on release channel $channel"
17Write-Output "RELEASE_CHANNEL=$channel" >> $env:GITHUB_ENV
18Write-Output "RELEASE_VERSION=$version" >> $env:GITHUB_ENV
19
20$expectedTagName = ""
21switch ($channel) {
22    "stable" {
23        $expectedTagName = "v$version"
24    }
25    "preview" {
26        $expectedTagName = "v$version-pre"
27    }
28    default {
29        Write-Error "can't publish a release on channel $channel"
30        exit 1
31    }
32}
33
34if ($env:GITHUB_REF_NAME -ne $expectedTagName) {
35    Write-Error "invalid release tag $($env:GITHUB_REF_NAME). expected $expectedTagName"
36    exit 1
37}