2025-12-23 19:17:16 +08:00

49 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
set -eo pipefail
# Check if VERSION environment is set
if [ -z "$VERSION" ]; then
echo "ERROR: VERSION environment variable is not set"
exit 1
fi
# If not triggered for local build, check for TWINE_PASSWORD
if [ -z "$LOCAL_BUILD" ]; then
# Check if TWINE_PASSWORD is set
if [ -z "$TWINE_PASSWORD" ]; then
echo "ERROR: TWINE_PASSWORD environment variable is not set"
exit 1
fi
fi
rm -rf dist
rm -rf build
cat pyproject.toml | sed -i "s/version = \"[^\"]*\"/version = \"$VERSION\"/" pyproject.toml
# Install wheel
pip install wheel
# Build x86_64 wheel
rm -rf ./mariadb_binlog_indexer/lib || true
mkdir -p ./mariadb_binlog_indexer/lib
cd ./indexer
CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -o ../mariadb_binlog_indexer/lib/indexer
cd ../
chmod +x ./mariadb_binlog_indexer/lib/indexer
pip wheel . --no-deps --wheel-dir dist --config-settings="--build-option=--plat-name=manylinux2014_x86_64"
# Build arm64 wheel
rm -rf ./mariadb_binlog_indexer/lib || true
mkdir -p ./mariadb_binlog_indexer/lib
cd ./indexer
CGO_ENABLED=1 GOOS=linux GOARCH=arm64 CC=aarch64-linux-gnu-gcc go build -o ../mariadb_binlog_indexer/lib/indexer
cd ../
chmod +x ./mariadb_binlog_indexer/lib/indexer
pip wheel . --no-deps --wheel-dir dist --config-settings="--build-option=--plat-name=manylinux2014_aarch64"
if [ -z "$LOCAL_BUILD" ]; then
pip install build twine
twine upload ./dist/* --non-interactive
fi