intermodal/bin/package
Casey Rodarmor 984543fcb9
Don't export rustflags
type: fixed
2021-10-13 19:47:49 -07:00

83 lines
1.7 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euxo pipefail
version=${1#"refs/tags/"}
os=$2
target=$3
src=`pwd`
dist=$src/target/dist
bin=imdl
echo "Packaging $bin $version for $target..."
test -f Cargo.lock || cargo generate-lockfile
echo "Building $bin..."
case $os in
ubuntu-latest)
sudo apt install help2man musl-tools
;;
macos-latest)
brew install help2man
;;
windows-latest)
;;
esac
RUSTFLAGS='--deny warnings --codegen target-feature=+crt-static' \
cargo build --bin $bin --target $target --release
executable=target/$target/release/$bin
if [[ $os == windows-2016 ]]; then
executable=$executable.exe
fi
echo "Building completions..."
cargo run --package gen -- --bin $executable completion-scripts
echo "Generating changelog..."
cargo run --package gen -- --bin $executable changelog
echo "Generating readme..."
cargo run --package gen -- --bin $executable readme
echo "Copying static files..."
mkdir $dist
cp -r \
$executable \
CONTRIBUTING \
Cargo.lock \
Cargo.toml \
LICENSE \
$dist
echo "Copying generated files..."
cp -r \
target/gen/README.md \
target/gen/CHANGELOG.md \
target/gen/completions \
$dist
if [[ $os != windows-latest ]]; then
echo "Building man pages..."
cargo run --package gen -- --bin $executable man
cp -r target/gen/man $dist/man
fi
cd $dist
echo "Creating release archive..."
case $os in
ubuntu-latest | macos-latest)
archive=$dist/$bin-$version-$target.tar.gz
tar czf $archive *
echo "::set-output name=archive::$archive"
;;
windows-latest)
archive=$dist/$bin-$version-$target.zip
7z a $archive *
echo "::set-output name=archive::`pwd -W`/$bin-$version-$target.zip"
;;
esac