set -euxo pipefail
VERSION=${REF#"refs/tags/"}
DIST=$(pwd)/dist
echo "Packaging ci-manager $VERSION for $TARGET..."
test -f Cargo.lock || cargo generate-lockfile
echo "Installing rust toolchain for $TARGET..."
rustup target add "$TARGET"
echo "Building ci-manager..."
RUSTFLAGS="--deny warnings --codegen target-feature=+crt-static" \
cargo build --bin ci-manager --target "$TARGET" --release
EXECUTABLE=target/$TARGET/release/ci-manager
if [[ $OS == windows-latest ]]; then
EXECUTABLE=$EXECUTABLE.exe
fi
echo "Copying release files..."
mkdir dist
cp --verbose -r \
"$EXECUTABLE" \
Cargo.lock \
Cargo.toml \
LICENSE \
README.md \
"$DIST"
cd "$DIST"
echo "Creating release archive..."
case $OS in
ubuntu-latest)
ARCHIVE=$DIST/ci-manager-$VERSION-$TARGET.tar.gz
tar czf "$ARCHIVE" ./*
echo "archive=$ARCHIVE" >> "$GITHUB_OUTPUT"
;;
windows-latest)
ARCHIVE=$DIST/ci-manager-$VERSION-$TARGET.zip
7z a "$ARCHIVE" ./*
echo "archive=$(pwd -W)/ci-manager-$VERSION-$TARGET.zip" >> "$GITHUB_OUTPUT"
;;
esac