Ensure that zed package version matches git tag before packaging a release

Antonio Scandurra and Nathan Sobo created

Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Change summary

.github/workflows/ci.yml |  4 ++++
script/validate-version  | 16 ++++++++++++++++
2 files changed, 20 insertions(+)

Detailed changes

.github/workflows/ci.yml 🔗

@@ -69,6 +69,10 @@ jobs:
         uses: actions/checkout@v2
         with:
           clean: false
+          
+      - name: Validate version
+        if: ${{ startsWith(github.ref, 'refs/tags/v') }}
+        run: script/validate-version
 
       - name: Download rust-analyzer
         run: script/download-rust-analyzer

script/validate-version 🔗

@@ -0,0 +1,16 @@
+#!/bin/bash
+
+set -e
+
+if [[ ! -f vendor/bin/jq ]]; then
+    curl -L https://github.com/stedolan/jq/releases/download/jq-1.6/jq-osx-amd64 > vendor/bin/jq
+    chmod +x vendor/bin/jq
+fi
+
+package_version="v$(cargo metadata --format-version=1 | vendor/bin/jq --raw-output '.packages[] | select(.name == "zed") | .version')"
+git_tag=$(git tag --points-at HEAD)
+
+if [[ $package_version != $git_tag ]]; then
+    echo "Version $package_version of zed package does not match git tag $git_tag"
+    exit 1
+fi