Skip to content

CI: ensure that tags are fetched so that zls --version works #3

CI: ensure that tags are fetched so that zls --version works

CI: ensure that tags are fetched so that zls --version works #3

Workflow file for this run

name: Deploy release artifacts
on:
push:
branches:
- master
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}
cancel-in-progress: false
jobs:
deploy:
if: github.repository_owner == 'zigtools'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-tags: "true"
- uses: goto-bus-stop/setup-zig@v2
with:
version: master
- run: zig env
- name: Build artifacts
run: |
mkdir -p artifacts/master
zig build release -Dcpu=baseline -Doptimize=ReleaseSafe --prefix artifacts/master --summary all
zls_version=$(artifacts/master/x86_64-linux/zls --version)
mkdir -p "artifacts/$zls_version/"
cp -r artifacts/master/* "artifacts/$zls_version/"
wget https://zigtools-releases.nyc3.digitaloceanspaces.com/zls/index.json
cp index.json artifacts/old-index.json
for file in artifacts/master/*; do
targets+=("${file#artifacts/master/}")
done
jq \
--arg targets "${targets[*]}" \
--arg zig_version "$(zig version)" \
--arg zls_version "$(artifacts/master/x86_64-linux/zls --version)" \
--arg zls_minimum_build_version "$(artifacts/master/x86_64-linux/zls --minimum-build-version)" \
'.latest = $zls_version | .versions[$zls_version] = {
"date": now | todateiso8601,
"builtWithZigVersion": $zig_version,
"zlsVersion": $zls_version,
"zlsMinimumBuildVersion": $zls_minimum_build_version,
"commit": "${{ github.sha }}",
"targets": ($targets / " "),
}' index.json > artifacts/index.json
- uses: BetaHuhn/do-spaces-action@v2
with:
access_key: ${{ secrets.DO_SPACES_ACCESS_KEY }}
secret_key: ${{ secrets.DO_SPACES_SECRET_KEY }}
space_name: zigtools-releases
space_region: nyc3
source: artifacts/
out_dir: zls/