mirror of
https://github.com/Qortal/piratewallet-light-cli.git
synced 2025-02-11 17:55:47 +00:00
Docker build
This commit is contained in:
parent
737636efae
commit
2da67024c2
26
docker/Dockerfile
Normal file
26
docker/Dockerfile
Normal file
@ -0,0 +1,26 @@
|
||||
FROM rust:1.38
|
||||
LABEL Description="Rust compile env for Linux + Windows (cross)"
|
||||
|
||||
RUN apt update
|
||||
RUN apt install -y build-essential mingw-w64 gcc-aarch64-linux-gnu gcc-arm-linux-gnueabihf
|
||||
|
||||
RUN rustup target add x86_64-pc-windows-gnu
|
||||
RUN rustup target add aarch64-unknown-linux-gnu
|
||||
RUN rustup target add armv7-unknown-linux-gnueabihf
|
||||
|
||||
# Append the linker to the cargo config for Windows cross compile
|
||||
RUN echo "[target.x86_64-pc-windows-gnu]" >> /usr/local/cargo/config && \
|
||||
echo "linker = '/usr/bin/x86_64-w64-mingw32-gcc'" >> /usr/local/cargo/config
|
||||
|
||||
RUN echo "[target.aarch64-unknown-linux-gnu]" >> /usr/local/cargo/config && \
|
||||
echo "linker = '/usr/bin/aarch64-linux-gnu-gcc'" >> /usr/local/cargo/config
|
||||
|
||||
RUN echo "[target.armv7-unknown-linux-gnueabihf]" >> /usr/local/cargo/config && \
|
||||
echo "linker = '/usr/bin/arm-linux-gnueabihf-gcc-5'" >> /usr/local/cargo/config
|
||||
|
||||
ENV CC_x86_64_unknown_linux_musl="gcc"
|
||||
ENV CC_aarch64_unknown_linux_gnu="aarch64-linux-gnu-gcc"
|
||||
ENV CC_armv7_unknown_linux_gnueabhihf="arm-linux-gnueabihf-gcc-5"
|
||||
|
||||
RUN cp /usr/x86_64-w64-mingw32/lib/crt2.o /usr/local/rustup/toolchains/1.38.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-pc-windows-gnu/lib/crt2.o
|
||||
|
77
mkrelease.sh
Executable file
77
mkrelease.sh
Executable file
@ -0,0 +1,77 @@
|
||||
#!/bin/bash
|
||||
# This script depends on a docker image already being built
|
||||
# To build it,
|
||||
# cd docker
|
||||
# docker build --tag rustbuild:latest .
|
||||
|
||||
POSITIONAL=()
|
||||
while [[ $# -gt 0 ]]
|
||||
do
|
||||
key="$1"
|
||||
|
||||
case $key in
|
||||
-v|--version)
|
||||
APP_VERSION="$2"
|
||||
shift # past argument
|
||||
shift # past value
|
||||
;;
|
||||
*) # unknown option
|
||||
POSITIONAL+=("$1") # save it in an array for later
|
||||
shift # past argument
|
||||
;;
|
||||
esac
|
||||
done
|
||||
set -- "${POSITIONAL[@]}" # restore positional parameters
|
||||
|
||||
if [ -z $APP_VERSION ]; then echo "APP_VERSION is not set"; exit 1; fi
|
||||
|
||||
# Clean everything first
|
||||
#cargo clean
|
||||
|
||||
# Compile for mac directly
|
||||
#cargo build --release
|
||||
|
||||
# For Windows and Linux, build via docker
|
||||
docker run --rm -v $(pwd)/:/opt/zecwallet-light-cli rustbuild:latest bash -c "cd /opt/zecwallet-light-cli && cargo build --release && cargo build --release --target x86_64-pc-windows-gnu"
|
||||
|
||||
# Now sign and zip the binaries
|
||||
#macOS
|
||||
rm -rf target/macOS-zecwallet-cli-v$APP_VERSION
|
||||
mkdir -p target/macOS-zecwallet-cli-v$APP_VERSION
|
||||
cp target/release/zecwallet-cli target/macOS-zecwallet-cli-v$APP_VERSION/
|
||||
gpg --batch --output target/macOS-zecwallet-cli-v$APP_VERSION/zecwallet-cli.sig --detach-sig target/macOS-zecwallet-cli-v$APP_VERSION/zecwallet-cli
|
||||
cd target
|
||||
cd macOS-zecwallet-cli-v$APP_VERSION
|
||||
gsha256sum zecwallet-cli > sha256sum.txt
|
||||
cd ..
|
||||
zip -r macOS-zecwallet-cli-v$APP_VERSION.zip macOS-zecwallet-cli-v$APP_VERSION
|
||||
cd ..
|
||||
|
||||
|
||||
#Linux
|
||||
rm -rf target/linux-zecwallet-cli-v$APP_VERSION
|
||||
mkdir -p target/linux-zecwallet-cli-v$APP_VERSION
|
||||
cp target/release/zecwallet-cli target/linux-zecwallet-cli-v$APP_VERSION/
|
||||
gpg --batch --output target/linux-zecwallet-cli-v$APP_VERSION/zecwallet-cli.sig --detach-sig target/linux-zecwallet-cli-v$APP_VERSION/zecwallet-cli
|
||||
cd target
|
||||
cd linux-zecwallet-cli-v$APP_VERSION
|
||||
gsha256sum zecwallet-cli > sha256sum.txt
|
||||
cd ..
|
||||
zip -r linux-zecwallet-cli-v$APP_VERSION.zip linux-zecwallet-cli-v$APP_VERSION
|
||||
cd ..
|
||||
|
||||
|
||||
#Windows
|
||||
rm -rf target/Windows-zecwallet-cli-v$APP_VERSION
|
||||
mkdir -p target/Windows-zecwallet-cli-v$APP_VERSION
|
||||
cp target/x86_64-pc-windows-gnu/release/zecwallet-cli.exe target/Windows-zecwallet-cli-v$APP_VERSION/
|
||||
gpg --batch --output target/Windows-zecwallet-cli-v$APP_VERSION/zecwallet-cli.sig --detach-sig target/Windows-zecwallet-cli-v$APP_VERSION/zecwallet-cli.exe
|
||||
cd target
|
||||
cd Windows-zecwallet-cli-v$APP_VERSION
|
||||
gsha256sum zecwallet-cli.exe > sha256sum.txt
|
||||
cd ..
|
||||
zip -r Windows-zecwallet-cli-v$APP_VERSION.zip Windows-zecwallet-cli-v$APP_VERSION
|
||||
cd ..
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user