Skip to content

update to new module system #4578

update to new module system

update to new module system #4578

Workflow file for this run

name: CI
on:
push:
paths:
- ".github/workflows/main.yml"
- "**.zig"
- "build.zig.zon"
pull_request:
paths:
- ".github/workflows/main.yml"
- "**.zig"
- "build.zig.zon"
schedule:
- cron: "0 0 * * *"
workflow_dispatch:
jobs:
build:
if: github.repository_owner == 'zigtools'
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: goto-bus-stop/setup-zig@v2
with:
version: master
- name: Get Zig version
id: zig_version
run: echo "zig_version=$(zig version)" >> $GITHUB_OUTPUT
- run: zig env
- name: Run zig fmt
run: zig fmt --check .
- name: Build
run: zig build
- name: Get ZLS version and mimimum build version
id: zls_version
run: |
echo "zls_version=$(./zig-out/bin/zls --version)" >> $GITHUB_OUTPUT
echo "zls_minimum_build_version=$(./zig-out/bin/zls --minimum-build-version)" >> $GITHUB_OUTPUT
- name: Run Tests
run: zig build test
- name: Build artifacts
if: ${{ matrix.os == 'ubuntu-latest' }}
run: |
declare -a targets=("x86_64-windows" "x86_64-linux" "x86_64-macos" "x86-windows" "x86-linux" "aarch64-linux" "aarch64-macos" "wasm32-wasi")
mkdir -p "artifacts/${{ steps.zls_version.outputs.zls_version }}/"
for target in "${targets[@]}"; do
mkdir -p artifacts/${{ steps.zls_version.outputs.zls_version }}/$target
echo "Building target ${target}..."
if [ "${GITHUB_REF##*/}" == "master" ]; then
echo "Building safe"
zig build -Dtarget=${target} -Dcpu=baseline -Doptimize=ReleaseSafe --prefix artifacts/${{ steps.zls_version.outputs.zls_version }}/${target}/
else
echo "Building debug as action is not running on master"
zig build -Dtarget=${target} -Dcpu=baseline --prefix artifacts/${{ steps.zls_version.outputs.zls_version }}/${target}/
fi
mv artifacts/${{ steps.zls_version.outputs.zls_version }}/${target}/bin/* artifacts/${{ steps.zls_version.outputs.zls_version }}/${target}
rmdir artifacts/${{ steps.zls_version.outputs.zls_version }}/${target}/bin
done
wget https://zigtools-releases.nyc3.digitaloceanspaces.com/zls/index.json
cp index.json artifacts/old-index.json
jq --arg targets "${targets[*]}" '.latest = "${{ steps.zls_version.outputs.zls_version }}" | .versions["${{ steps.zls_version.outputs.zls_version }}"] = {
"date": now | todateiso8601,
"builtWithZigVersion": "${{ steps.zig_version.outputs.zig_version }}",
"zlsVersion": "${{ steps.zls_version.outputs.zls_version }}",
"zlsMinimumBuildVersion": "${{ steps.zls_version.outputs.zls_minimum_build_version }}",
"commit": "${{ github.sha }}",
"targets": ($targets / " "),
}' index.json > artifacts/index.json
- name: Upload x86_64-windows artifact
if: ${{ matrix.os == 'ubuntu-latest' }}
uses: actions/upload-artifact@v3
with:
name: zls-x86_64-windows
path: artifacts/${{ steps.zls_version.outputs.zls_version }}/x86_64-windows/
- name: Upload x86_64-linux artifact
if: ${{ matrix.os == 'ubuntu-latest' }}
uses: actions/upload-artifact@v3
with:
name: zls-x86_64-linux
path: artifacts/${{ steps.zls_version.outputs.zls_version }}/x86_64-linux/
- name: Upload x86_64-macos artifact
if: ${{ matrix.os == 'ubuntu-latest' }}
uses: actions/upload-artifact@v3
with:
name: zls-x86_64-macos
path: artifacts/${{ steps.zls_version.outputs.zls_version }}/x86_64-macos/
- name: Upload x86-windows artifact
if: ${{ matrix.os == 'ubuntu-latest' }}
uses: actions/upload-artifact@v3
with:
name: zls-x86-windows
path: artifacts/${{ steps.zls_version.outputs.zls_version }}/x86-windows/
- name: Upload x86-linux artifact
if: ${{ matrix.os == 'ubuntu-latest' }}
uses: actions/upload-artifact@v3
with:
name: zls-x86-linux
path: artifacts/${{ steps.zls_version.outputs.zls_version }}/x86-linux/
- name: Upload aarch64-linux artifact
if: ${{ matrix.os == 'ubuntu-latest' }}
uses: actions/upload-artifact@v3
with:
name: zls-aarch64-linux
path: artifacts/${{ steps.zls_version.outputs.zls_version }}/aarch64-linux/
- name: Upload aarch64-macos artifact
if: ${{ matrix.os == 'ubuntu-latest' }}
uses: actions/upload-artifact@v3
with:
name: zls-aarch64-macos
path: artifacts/${{ steps.zls_version.outputs.zls_version }}/aarch64-macos/
- name: Upload wasm32-wasi artifact
if: ${{ matrix.os == 'ubuntu-latest' }}
uses: actions/upload-artifact@v3
with:
name: zls-wasm32-wasi
path: artifacts/${{ steps.zls_version.outputs.zls_version }}/wasm32-wasi/
- uses: BetaHuhn/do-spaces-action@v2
if: ${{ matrix.os == 'ubuntu-latest' && github.ref == 'refs/heads/master' }}
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/