mirror of
https://github.com/alexgo-io/stacks-puppet-node.git
synced 2026-04-28 19:55:20 +08:00
DRY dist build script
This commit is contained in:
4
.github/workflows/deploy.yml
vendored
4
.github/workflows/deploy.yml
vendored
@@ -12,7 +12,7 @@ jobs:
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
platform: [ windows_x64, macos_x64, linux_x64, linux_musl_x64, linux_musl_x64, linux_armv7, linux_arm64 ]
|
||||
platform: [ windows-x64, macos-x64, linux-x64, linux-musl-x64, linux-armv7, linux-arm64 ]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
@@ -25,5 +25,5 @@ jobs:
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: dist
|
||||
name: ${{ matrix.platform }}
|
||||
path: dist/
|
||||
@@ -13,5 +13,7 @@ RUN CC=aarch64-linux-gnu-gcc \
|
||||
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc \
|
||||
cargo build --release --workspace=./ --target aarch64-unknown-linux-gnu
|
||||
|
||||
RUN mkdir /out && cp -R /src/target/aarch64-unknown-linux-gnu/release/. /out
|
||||
|
||||
FROM scratch AS export-stage
|
||||
COPY --from=build /src/target/aarch64-unknown-linux-gnu/release /
|
||||
COPY --from=build /out/blockstack-core /out/blockstack-cli /out/clarity-cli /out/stacks-node /
|
||||
@@ -13,5 +13,7 @@ RUN CC=arm-linux-gnueabihf-gcc \
|
||||
CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABIHF_LINKER=arm-linux-gnueabihf-gcc \
|
||||
cargo build --release --workspace=./ --target armv7-unknown-linux-gnueabihf
|
||||
|
||||
RUN mkdir /out && cp -R /src/target/armv7-unknown-linux-gnueabihf/release/. /out
|
||||
|
||||
FROM scratch AS export-stage
|
||||
COPY --from=build /src/target/armv7-unknown-linux-gnueabihf/release /
|
||||
COPY --from=build /out/blockstack-core /out/blockstack-cli /out/clarity-cli /out/stacks-node /
|
||||
@@ -13,5 +13,7 @@ RUN CC=musl-gcc \
|
||||
CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_LINKER=musl-gcc \
|
||||
cargo build --release --workspace=./ --target x86_64-unknown-linux-musl
|
||||
|
||||
RUN mkdir /out && cp -R /src/target/x86_64-unknown-linux-musl/release/. /out
|
||||
|
||||
FROM scratch AS export-stage
|
||||
COPY --from=build /src/target/x86_64-unknown-linux-musl/release /
|
||||
COPY --from=build /out/blockstack-core /out/blockstack-cli /out/clarity-cli /out/stacks-node /
|
||||
@@ -8,5 +8,7 @@ RUN rustup target add x86_64-unknown-linux-gnu
|
||||
|
||||
RUN cargo build --release --workspace=./ --target x86_64-unknown-linux-gnu
|
||||
|
||||
RUN mkdir /out && cp -R /src/target/x86_64-unknown-linux-gnu/release/. /out
|
||||
|
||||
FROM scratch AS export-stage
|
||||
COPY --from=build /src/target/x86_64-unknown-linux-gnu/release /
|
||||
COPY --from=build /out/blockstack-core /out/blockstack-cli /out/clarity-cli /out/stacks-node /
|
||||
@@ -20,5 +20,7 @@ RUN wget -nc "https://github.com/blockstackpbc/osxcross/releases/download/v1/osx
|
||||
CARGO_TARGET_X86_64_APPLE_DARWIN_AR=x86_64-apple-darwin18-ar \
|
||||
cargo build --target x86_64-apple-darwin --release --workspace=./
|
||||
|
||||
RUN mkdir /out && cp -R /src/target/x86_64-apple-darwin/release/. /out
|
||||
|
||||
FROM scratch AS export-stage
|
||||
COPY --from=build /src/target/x86_64-apple-darwin/release /
|
||||
COPY --from=build /out/blockstack-core /out/blockstack-cli /out/clarity-cli /out/stacks-node /
|
||||
@@ -11,6 +11,8 @@ RUN apt-get update && apt-get install -y gcc-mingw-w64-x86-64
|
||||
RUN CC_x86_64_pc_windows_gnu=x86_64-w64-mingw32-gcc \
|
||||
CARGO_TARGET_X86_64_PC_WINDOWS_GNU_LINKER=x86_64-w64-mingw32-gcc \
|
||||
cargo build --release --workspace=./ --target x86_64-pc-windows-gnu
|
||||
|
||||
RUN mkdir /out && cp -R /src/target/x86_64-pc-windows-gnu/release/. /out
|
||||
|
||||
FROM scratch AS export-stage
|
||||
COPY --from=build /src/target/x86_64-pc-windows-gnu/release /
|
||||
COPY --from=build /out/blockstack-core.exe /out/blockstack-cli.exe /out/clarity-cli.exe /out/stacks-node.exe /
|
||||
@@ -6,63 +6,21 @@ script_path="$(dirname "$0")"
|
||||
src_dir="$(dirname "$script_path")"
|
||||
cd "$src_dir"
|
||||
|
||||
build_linux_x64 () {
|
||||
dist_archive="dist/stacks-blockchain-linux-x64.tar.bz2"
|
||||
rm -rf $dist_archive dist/linux-x64
|
||||
DOCKER_BUILDKIT=1 docker build -o dist/linux-x64 -f ./build-scripts/Dockerfile.linux-x64 .
|
||||
tar cfvj $dist_archive -C dist/linux-x64 blockstack-core blockstack-cli clarity-cli stacks-node
|
||||
rm -rf dist/linux-x64
|
||||
}
|
||||
|
||||
build_linux_musl_x64 () {
|
||||
dist_archive="dist/stacks-blockchain-linux-musl-x64.tar.bz2"
|
||||
rm -rf $dist_archive dist/linux-musl-x64
|
||||
DOCKER_BUILDKIT=1 docker build -o dist/linux-musl-x64 -f ./build-scripts/Dockerfile.linux-musl-x64 .
|
||||
tar cfvj $dist_archive -C dist/linux-musl-x64 blockstack-core blockstack-cli clarity-cli stacks-node
|
||||
rm -rf dist/linux-musl-x64
|
||||
}
|
||||
|
||||
build_linux_armv7 () {
|
||||
dist_archive="dist/stacks-blockchain-linux-armv7.tar.bz2"
|
||||
rm -rf $dist_archive dist/linux-armv7
|
||||
DOCKER_BUILDKIT=1 docker build -o dist/linux-armv7 -f ./build-scripts/Dockerfile.linux-armv7 .
|
||||
tar cfvj $dist_archive -C dist/linux-armv7 blockstack-core blockstack-cli clarity-cli stacks-node
|
||||
rm -rf dist/linux-armv7
|
||||
}
|
||||
|
||||
build_linux_arm64 () {
|
||||
dist_archive="dist/stacks-blockchain-linux-arm64.tar.bz2"
|
||||
rm -rf $dist_archive dist/linux-arm64
|
||||
DOCKER_BUILDKIT=1 docker build -o dist/linux-arm64 -f ./build-scripts/Dockerfile.linux-arm64 .
|
||||
tar cfvj $dist_archive -C dist/linux-arm64 blockstack-core blockstack-cli clarity-cli stacks-node
|
||||
rm -rf dist/linux-arm64
|
||||
}
|
||||
|
||||
build_macos_x64 () {
|
||||
dist_archive="dist/stacks-blockchain-macos-x64.tar.bz2"
|
||||
rm -rf $dist_archive dist/macos-x64
|
||||
DOCKER_BUILDKIT=1 docker build -o dist/macos-x64 -f ./build-scripts/Dockerfile.macos-x64 .
|
||||
tar cfvj $dist_archive -C dist/macos-x64 blockstack-core blockstack-cli clarity-cli stacks-node
|
||||
rm -rf dist/macos-x64
|
||||
}
|
||||
|
||||
build_windows_x64 () {
|
||||
dist_archive="dist/stacks-blockchain-windows-x64.tar.bz2"
|
||||
rm -rf $dist_archive dist/windows-x64
|
||||
DOCKER_BUILDKIT=1 docker build -o dist/windows-x64 -f ./build-scripts/Dockerfile.windows-x64 .
|
||||
tar cfvj $dist_archive -C dist/windows-x64 blockstack-core.exe blockstack-cli.exe clarity-cli.exe stacks-node.exe
|
||||
rm -rf dist/windows-x64
|
||||
build_platform () {
|
||||
echo "Building $1"
|
||||
rm -rf dist/$1
|
||||
DOCKER_BUILDKIT=1 docker build -o dist/$1 -f ./build-scripts/Dockerfile.$1 .
|
||||
}
|
||||
|
||||
case $DIST_TARGET_FILTER in
|
||||
(*[![:blank:]]*)
|
||||
case $DIST_TARGET_FILTER in
|
||||
linux_x64) build_linux_x64 ;;
|
||||
linux_musl_x64) build_linux_musl_x64 ;;
|
||||
linux_armv7) build_linux_armv7 ;;
|
||||
linux_arm64) build_linux_arm64 ;;
|
||||
windows_x64) build_windows_x64 ;;
|
||||
macos_x64) build_macos_x64 ;;
|
||||
linux-x64) build_platform linux-x64 ;;
|
||||
linux-musl-x64) build_platform linux-musl-x64 ;;
|
||||
linux-armv7) build_platform linux-armv7 ;;
|
||||
linux-arm64) build_platform linux-arm64 ;;
|
||||
windows-x64) build_platform windows-x64 ;;
|
||||
macos-x64) build_platform macos-x64 ;;
|
||||
*)
|
||||
echo "Invalid dist target filter '$DIST_TARGET_FILTER'"
|
||||
exit 1
|
||||
@@ -71,11 +29,11 @@ case $DIST_TARGET_FILTER in
|
||||
;;
|
||||
(*)
|
||||
echo "Building distrubtions for all targets."
|
||||
build_linux_x64
|
||||
build_linux_musl_x64
|
||||
build_linux_armv7
|
||||
build_linux_arm64
|
||||
build_windows_x64
|
||||
build_macos_x64
|
||||
build_platform linux-x64
|
||||
build_platform linux-musl-x64
|
||||
build_platform linux-armv7
|
||||
build_platform linux-arm64
|
||||
build_platform windows-x64
|
||||
build_platform macos-x64
|
||||
;;
|
||||
esac
|
||||
esac
|
||||
|
||||
Reference in New Issue
Block a user