main
pico.sh
Eric Bower
·
2026-06-12
1#!/usr/bin/env bash
2set -euo pipefail
3
4export ZMX_SESSION_PREFIX="${ZMX_SESSION_PREFIX:-ci.zmx.}"
5EVENT="${PICI_EVENT:-manual}"
6
7echo "running ci event=${EVENT} session=${ZMX_SESSION_PREFIX}"
8
9zmx run build docker build -t zig-zmx .
10zmx run fmt -d docker run --rm -t zig-zmx:latest zig fmt --check .
11zmx run test -d docker run --rm -t zig-zmx:latest zig build test
12zmx run integration -d docker run --rm -t zig-zmx:latest bats test/*.bats
13zmx wait "*"
14
15zmx run upload-build docker build -t zmx-upload -f Dockerfile.upload .
16
17if [[ $PICI_BRANCH = "main" ]]; then
18 zmx run upload docker run --rm \
19 -v "$(pwd)/README.md:/app/README.md:ro" \
20 -v "$(pwd)/logo.png:/app/logo.png:ro" \
21 -v "$(pwd)/index.tmpl:/app/index.tmpl:ro" \
22 -v ~/.ssh:/root/.ssh:ro \
23 zmx-upload
24fi
25
26if [[ $EVENT != "git.tag" ]]; then
27 echo "success!"
28 exit 0
29fi
30
31TAG="${PICI_TAG}"
32NEW_VERSION="${PICI_TAG#v}"
33
34zmx run semver sed -i "s/\.version = \"[^\"]*\"/.version = \"$NEW_VERSION\"/" build.zig.zon && cat build.zig.zon
35zmx run update-readme sed -i "s/zmx-[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*/zmx-$NEW_VERSION/g" README.md
36zmx run build-release -d docker run --rm -t zig-zmx:latest zig build release
37zmx run brew -d bash gen-brew.sh "$NEW_VERSION"
38
39echo "distributing bins"
40zmx run upload docker run --rm \
41 -v "$(pwd)/zig-out/dist:/app/dist:ro" \
42 -v ~/.ssh:/root/.ssh:ro \
43 zmx-upload rsync -rv dist/ pgs.sh:/zmx/a
44zmx run gh-build docker build -t gh-release -f Dockerfile.release .
45zmx run gh docker run --rm \
46 -v "$(pwd)/zig-out/dist":/dist \
47 -e GH_TOKEN \
48 -e TAG="$TAG" \
49 gh-release
50
51echo "success!"