diff --git a/dist/build/aarch64_centos7/Dockerfile b/dist/build/aarch64_centos7/Dockerfile index 90c4660..1264477 100644 --- a/dist/build/aarch64_centos7/Dockerfile +++ b/dist/build/aarch64_centos7/Dockerfile @@ -1,7 +1,5 @@ FROM centos:centos7 as builder -ARG branch -ENV branch=$branch WORKDIR /usr/src/ # Install dependencies RUN yum -y install \ @@ -18,13 +16,10 @@ RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs > /tmp/rust.sh && chmod +x /tmp/rust.sh && \ /tmp/rust.sh -y # Clone repository -RUN git clone --branch $branch https://github.com/veeso/termscp.git +RUN git clone https://github.com/veeso/termscp.git # Set workdir to termscp WORKDIR /usr/src/termscp/ -# Build for x86_64 -RUN source $HOME/.cargo/env && cargo build --release # Install cargo rpm RUN source $HOME/.cargo/env && cargo install cargo-rpm -# Build pkgs -RUN source $HOME/.cargo/env && cargo rpm init && cargo rpm build -CMD ["sh"] + +ENTRYPOINT ["tail", "-f", "/dev/null"] diff --git a/dist/build/aarch64_debian9/Dockerfile b/dist/build/aarch64_debian9/Dockerfile index fd4b0cf..15d069a 100644 --- a/dist/build/aarch64_debian9/Dockerfile +++ b/dist/build/aarch64_debian9/Dockerfile @@ -1,7 +1,5 @@ FROM debian:stretch -ARG branch -ENV branch=$branch WORKDIR /usr/src/ # Install dependencies RUN apt update && apt install -y \ @@ -18,14 +16,10 @@ RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs > /tmp/rust.sh && chmod +x /tmp/rust.sh && \ /tmp/rust.sh -y # Clone repository -RUN git clone --branch $branch https://github.com/veeso/termscp.git +RUN git clone https://github.com/veeso/termscp.git # Set workdir to termscp WORKDIR /usr/src/termscp/ # Install cargo deb RUN . $HOME/.cargo/env && cargo install cargo-deb -# Build for x86_64 -RUN . $HOME/.cargo/env && cargo build --release -# Build pkgs -RUN . $HOME/.cargo/env && cargo deb -CMD ["bash"] +ENTRYPOINT ["tail", "-f", "/dev/null"] diff --git a/dist/build/linux-aarch64.sh b/dist/build/linux-aarch64.sh index b9b599d..78d5199 100755 --- a/dist/build/linux-aarch64.sh +++ b/dist/build/linux-aarch64.sh @@ -1,7 +1,7 @@ #!/bin/bash if [ -z "$1" ]; then - echo "Usage: $0 [branch]" + echo "Usage: $0 [branch] [--no-cache]" exit 1 fi @@ -13,6 +13,16 @@ else BRANCH=$2 fi +CACHE="" + +if [ "$3" == "--no-cache" ]; then + CACHE="--no-cache" +fi + +# names +ARM64_DEB_NAME="termscp-arm64_deb" +ARM64_RPM_NAME="termscp-arm64_rpm" + set -e # Don't fail # Create pkgs directory @@ -22,13 +32,15 @@ cd - mkdir -p ${PKGS_DIR}/ # Build aarch64_deb cd aarch64_debian9/ -docker buildx build --platform linux/arm64 --no-cache --build-arg branch=${BRANCH} --tag termscp-${VERSION}-aarch64_debian9 . +docker buildx build --platform linux/arm64 $CACHE --build-arg branch=${BRANCH} --tag $ARM64_DEB_NAME . cd - mkdir -p ${PKGS_DIR}/deb/ mkdir -p ${PKGS_DIR}/aarch64-unknown-linux-gnu/ -CONTAINER_NAME=$(docker create termscp-${VERSION}-aarch64_debian9 /bin/bash) +docker run --name "$ARM64_DEB_NAME" -d "$ARM64_DEB_NAME" || docker start "$ARM64_DEB_NAME" +docker exec -it "$ARM64_DEB_NAME" bash -c ". \$HOME/.cargo/env && git fetch origin && git checkout origin/$BRANCH && cargo build --release && cargo deb" docker cp ${CONTAINER_NAME}:/usr/src/termscp/target/debian/termscp_${VERSION}_arm64.deb ${PKGS_DIR}/deb/ docker cp ${CONTAINER_NAME}:/usr/src/termscp/target/release/termscp ${PKGS_DIR}/aarch64-unknown-linux-gnu/ +docker stop "$ARM64_DEB_NAME" # Make tar.gz cd ${PKGS_DIR}/aarch64-unknown-linux-gnu/ tar cvzf termscp-v${VERSION}-aarch64-unknown-linux-gnu.tar.gz termscp @@ -36,10 +48,11 @@ rm termscp cd - # Build aarch64_centos7 cd aarch64_centos7/ -docker buildx build --platform linux/arm64 --no-cache --build-arg branch=${BRANCH} --tag termscp-${VERSION}-aarch64_centos7 . +docker buildx build --platform linux/arm64 $CACHE --build-arg branch=${BRANCH} --tag $ARM64_RPM_NAME . cd - mkdir -p ${PKGS_DIR}/rpm/ -CONTAINER_NAME=$(docker create termscp-${VERSION}-aarch64_centos7 /bin/bash) +docker run --name "$ARM64_RPM_NAME" -d "$ARM64_RPM_NAME" || docker start "$ARM64_RPM_NAME" +docker exec -it "$ARM64_RPM_NAME" bash -c ". \$HOME/.cargo/env && git fetch origin && git checkout origin/$BRANCH && cargo rpm init && cargo rpm build" docker cp ${CONTAINER_NAME}:/usr/src/termscp/target/release/rpmbuild/RPMS/aarch64/termscp-${VERSION}-1.el7.aarch64.rpm ${PKGS_DIR}/rpm/termscp-${VERSION}-1.aarch64.rpm exit $? diff --git a/dist/build/linux-x86_64.sh b/dist/build/linux-x86_64.sh index f81edc2..d49cace 100755 --- a/dist/build/linux-x86_64.sh +++ b/dist/build/linux-x86_64.sh @@ -1,7 +1,7 @@ #!/bin/bash if [ -z "$1" ]; then - echo "Usage: $0 [branch]" + echo "Usage: $0 [branch] [--no-cache]" exit 1 fi @@ -13,6 +13,16 @@ else BRANCH=$2 fi +CACHE="" + +if [ "$3" == "--no-cache" ]; then + CACHE="--no-cache" +fi + +# names +X86_64_DEB_NAME="termscp-x86_64_deb" +X86_64_RPM_NAME="termscp-x86_64_rpm" + set -e # Don't fail # Create pkgs directory @@ -22,13 +32,15 @@ cd - mkdir -p ${PKGS_DIR}/ # Build x86_64_deb cd x86_64_debian9/ -docker build --no-cache --build-arg branch=${BRANCH} --tag termscp-${VERSION}-x86_64_debian9 . +docker build $CACHE --build-arg branch=${BRANCH} --tag "$X86_64_DEB_NAME" . cd - mkdir -p ${PKGS_DIR}/deb/ mkdir -p ${PKGS_DIR}/x86_64-unknown-linux-gnu/ -CONTAINER_NAME=$(docker create termscp-${VERSION}-x86_64_debian9 /bin/bash) -docker cp ${CONTAINER_NAME}:/usr/src/termscp/target/debian/termscp_${VERSION}_amd64.deb ${PKGS_DIR}/deb/ -docker cp ${CONTAINER_NAME}:/usr/src/termscp/target/release/termscp ${PKGS_DIR}/x86_64-unknown-linux-gnu/ +docker run --name "$X86_64_DEB_NAME" -d "$X86_64_DEB_NAME" || docker start "$X86_64_DEB_NAME" +docker exec -it "$X86_64_DEB_NAME" bash -c ". \$HOME/.cargo/env && git fetch origin && git checkout origin/$BRANCH && cargo build --release && cargo deb" +docker cp ${X86_64_DEB_NAME}:/usr/src/termscp/target/debian/termscp_${VERSION}_amd64.deb ${PKGS_DIR}/deb/ +docker cp ${X86_64_DEB_NAME}:/usr/src/termscp/target/release/termscp ${PKGS_DIR}/x86_64-unknown-linux-gnu/ +docker stop "$X86_64_DEB_NAME" # Make tar.gz cd ${PKGS_DIR}/x86_64-unknown-linux-gnu/ tar cvzf termscp-v${VERSION}-x86_64-unknown-linux-gnu.tar.gz termscp @@ -36,10 +48,12 @@ rm termscp cd - # Build x86_64_centos7 cd x86_64_centos7/ -docker build --no-cache --build-arg branch=${BRANCH} --tag termscp-${VERSION}-x86_64_centos7 . +docker build $CACHE --build-arg branch=${BRANCH} --tag "$X86_64_RPM_NAME" . cd - mkdir -p ${PKGS_DIR}/rpm/ -CONTAINER_NAME=$(docker create termscp-${VERSION}-x86_64_centos7 /bin/bash) -docker cp ${CONTAINER_NAME}:/usr/src/termscp/target/release/rpmbuild/RPMS/x86_64/termscp-${VERSION}-1.el7.x86_64.rpm ${PKGS_DIR}/rpm/termscp-${VERSION}-1.x86_64.rpm +docker run --name "$X86_64_RPM_NAME" -d "$X86_64_RPM_NAME" || docker start "$X86_64_RPM_NAME" +docker exec -it "$X86_64_RPM_NAME" bash -c ". \$HOME/.cargo/env && git fetch origin && git checkout origin/$BRANCH && cargo rpm init && cargo rpm build" +docker cp ${X86_64_RPM_NAME}:/usr/src/termscp/target/release/rpmbuild/RPMS/x86_64/termscp-${VERSION}-1.el7.x86_64.rpm ${PKGS_DIR}/rpm/termscp-${VERSION}-1.x86_64.rpm +docker stop "$X86_64_RPM_NAME" exit $? diff --git a/dist/build/macos.sh b/dist/build/macos.sh index 62bfe7c..618c4c7 100755 --- a/dist/build/macos.sh +++ b/dist/build/macos.sh @@ -8,12 +8,12 @@ make_pkg() { TARGET_DIR=target/release/ fi ROOT_DIR=$(pwd) - cd $TARGET_DIR + cd "$TARGET_DIR" PKG="termscp-v${VERSION}-${ARCH}-apple-darwin.tar.gz" - tar czf $PKG termscp - HASH=$(sha256sum $PKG) - mkdir -p ${ROOT_DIR}/dist/pkgs/macos/ - mv $PKG ${ROOT_DIR}/dist/pkgs/macos/$PKG + tar czf "$PKG" termscp + HASH=$(sha256sum "$PKG") + mkdir -p "${ROOT_DIR}/dist/pkgs/macos/" + mv "$PKG" "${ROOT_DIR}/dist/pkgs/macos/$PKG" cd - echo "$HASH" } @@ -24,7 +24,8 @@ if [ -z "$1" ]; then fi VERSION=$1 -export BUILD_ROOT=$(pwd)/../../ +export BUILD_ROOT +BUILD_ROOT="$(pwd)/../../" set -e # Don't fail @@ -39,15 +40,18 @@ fi # Build release (x86_64) cargo build --release # Make pkg -X86_64_HASH=$(make_pkg "x86_64" $VERSION) +X86_64_HASH=$(make_pkg "x86_64" "$VERSION") +RET_X86_64=$? -cd $BUILD_ROOT +cd "$BUILD_ROOT" # Build ARM64 pkg cargo build --release --target aarch64-apple-darwin # Make pkg -ARM64_HASH=$(make_pkg "arm64" $VERSION "target/aarch64-apple-darwin/release/") +ARM64_HASH=$(make_pkg "arm64" "$VERSION" "target/aarch64-apple-darwin/release/") +RET_ARM64=$? echo "x86_64 hash: $X86_64_HASH" echo "arm64 hash: $ARM64_HASH" +[ "$RET_ARM64" -eq 0 ] && [ "$RET_X86_64" -eq 0 ] exit $? diff --git a/dist/build/x86_64/Dockerfile b/dist/build/x86_64/Dockerfile deleted file mode 100644 index 3d6d341..0000000 --- a/dist/build/x86_64/Dockerfile +++ /dev/null @@ -1,22 +0,0 @@ -FROM rust:1.55.0 AS builder - -WORKDIR /usr/src/ -# Add toolchains -RUN rustup target add x86_64-unknown-linux-gnu -# Install dependencies -RUN apt update && apt install -y \ - git \ - gcc \ - pkg-config \ - libdbus-1-dev \ - curl -# Clone repository -RUN git clone https://github.com/veeso/termscp.git -# Set workdir to termscp -WORKDIR /usr/src/termscp/ -# Install cargo RPM/Deb -RUN cargo install cargo-strip -# Build for x86_64 -RUN cargo build --release --target x86_64-unknown-linux-gnu && cargo strip - -CMD ["sh"] diff --git a/dist/build/x86_64_centos7/Dockerfile b/dist/build/x86_64_centos7/Dockerfile index 90c4660..1264477 100644 --- a/dist/build/x86_64_centos7/Dockerfile +++ b/dist/build/x86_64_centos7/Dockerfile @@ -1,7 +1,5 @@ FROM centos:centos7 as builder -ARG branch -ENV branch=$branch WORKDIR /usr/src/ # Install dependencies RUN yum -y install \ @@ -18,13 +16,10 @@ RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs > /tmp/rust.sh && chmod +x /tmp/rust.sh && \ /tmp/rust.sh -y # Clone repository -RUN git clone --branch $branch https://github.com/veeso/termscp.git +RUN git clone https://github.com/veeso/termscp.git # Set workdir to termscp WORKDIR /usr/src/termscp/ -# Build for x86_64 -RUN source $HOME/.cargo/env && cargo build --release # Install cargo rpm RUN source $HOME/.cargo/env && cargo install cargo-rpm -# Build pkgs -RUN source $HOME/.cargo/env && cargo rpm init && cargo rpm build -CMD ["sh"] + +ENTRYPOINT ["tail", "-f", "/dev/null"] diff --git a/dist/build/x86_64_debian8/Dockerfile b/dist/build/x86_64_debian8/Dockerfile deleted file mode 100644 index 533aa52..0000000 --- a/dist/build/x86_64_debian8/Dockerfile +++ /dev/null @@ -1,27 +0,0 @@ -FROM debian:jessie - -WORKDIR /usr/src/ -# Install dependencies -RUN apt update && apt install -y \ - git \ - gcc \ - pkg-config \ - libdbus-1-dev \ - curl - -# Install rust -RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs > /tmp/rust.sh && \ - chmod +x /tmp/rust.sh && \ - /tmp/rust.sh -y -# Clone repository -RUN git clone https://github.com/veeso/termscp.git -# Set workdir to termscp -WORKDIR /usr/src/termscp/ -# Install cargo deb -RUN . $HOME/.cargo/env && cargo install cargo-deb -# Build for x86_64 -RUN . $HOME/.cargo/env && cargo build --release -# Build pkgs -RUN . $HOME/.cargo/env && cargo deb - -CMD ["sh"] diff --git a/dist/build/x86_64_debian9/Dockerfile b/dist/build/x86_64_debian9/Dockerfile index fd4b0cf..15d069a 100644 --- a/dist/build/x86_64_debian9/Dockerfile +++ b/dist/build/x86_64_debian9/Dockerfile @@ -1,7 +1,5 @@ FROM debian:stretch -ARG branch -ENV branch=$branch WORKDIR /usr/src/ # Install dependencies RUN apt update && apt install -y \ @@ -18,14 +16,10 @@ RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs > /tmp/rust.sh && chmod +x /tmp/rust.sh && \ /tmp/rust.sh -y # Clone repository -RUN git clone --branch $branch https://github.com/veeso/termscp.git +RUN git clone https://github.com/veeso/termscp.git # Set workdir to termscp WORKDIR /usr/src/termscp/ # Install cargo deb RUN . $HOME/.cargo/env && cargo install cargo-deb -# Build for x86_64 -RUN . $HOME/.cargo/env && cargo build --release -# Build pkgs -RUN . $HOME/.cargo/env && cargo deb -CMD ["bash"] +ENTRYPOINT ["tail", "-f", "/dev/null"]