From 10c57f87eababa5dfac9cd00a2501d7470c94108 Mon Sep 17 00:00:00 2001 From: timvisee Date: Sun, 14 Nov 2021 22:16:01 +0100 Subject: [PATCH 1/2] Add GitLab CI builds for ARMv7 and aarch64 --- .gitlab-ci.yml | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 70eb64d..09141c6 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -106,6 +106,76 @@ build-x86_64-linux-musl: - lazymc-$TARGET expire_in: 1 month +# Build using Rust stable on Linux for ARMv7 +build-armv7-linux-gnu: + stage: build + image: ubuntu + needs: [] + variables: + TARGET: armv7-unknown-linux-gnueabihf + cache: + <<: *rust-build-cache + before_script: + - apt-get update + - apt-get install -y --no-install-recommends build-essential + - | + apt-get install -y curl + curl https://sh.rustup.rs -sSf | sh -s -- -y + source $HOME/.cargo/env + - | + rustc --version + cargo --version + script: + - apt-get install -y gcc-arm-linux-gnueabihf + - rustup target add $TARGET + + - mkdir -p ~/.cargo + - 'echo "[target.$TARGET]" >> ~/.cargo/config' + - 'echo "linker = \"arm-linux-gnueabihf-gcc\"" >> ~/.cargo/config' + + - cargo build --target=$TARGET --release --locked --verbose + - mv target/$TARGET/release/lazymc ./lazymc-$TARGET + artifacts: + name: lazymc-armv7-linux-gnu + paths: + - lazymc-$TARGET + expire_in: 1 month + +# Build using Rust stable on Linux for aarch64 +build-aarch64-linux-gnu: + stage: build + image: ubuntu + needs: [] + variables: + TARGET: aarch64-unknown-linux-gnu + cache: + <<: *rust-build-cache + before_script: + - apt-get update + - apt-get install -y --no-install-recommends build-essential + - | + apt-get install -y curl + curl https://sh.rustup.rs -sSf | sh -s -- -y + source $HOME/.cargo/env + - | + rustc --version + cargo --version + script: + - apt-get install -y gcc-aarch64-linux-gnu + - rustup target add $TARGET + + - mkdir -p ~/.cargo + - 'echo "[target.$TARGET]" >> ~/.cargo/config' + - 'echo "linker = \"aarch64-linux-gnu-gcc\"" >> ~/.cargo/config' + + - cargo build --target=$TARGET --release --locked --verbose + - mv target/$TARGET/release/lazymc ./lazymc-$TARGET + artifacts: + name: lazymc-aarch64-linux-gnu + paths: + - lazymc-$TARGET + expire_in: 1 month + # Build using Rust stable on macOS build-macos: stage: build From a04a5f93e98c95666be1fa57d438b4ea3bdf5e48 Mon Sep 17 00:00:00 2001 From: timvisee Date: Mon, 15 Nov 2021 00:40:52 +0100 Subject: [PATCH 2/2] Add ARMv7 and aarch64 builds to release job --- .gitlab-ci.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 09141c6..eaded61 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -255,6 +255,8 @@ release-gitlab-generic-package: variables: LINUX_GNU_BIN: "lazymc-x86_64-unknown-linux-gnu" LINUX_MUSL_BIN: "lazymc-x86_64-unknown-linux-musl" + LINUX_ARMV7_GNU_BIN: "lazymc-armv7-unknown-linux-gnueabihf" + LINUX_AARCH64_GNU_BIN: "lazymc-aarch64-unknown-linux-gnu" MACOS_BIN: "lazymc-x86_64-apple-darwin" WINDOWS_BIN: "lazymc-x86_64-pc-windows-msvc.exe" before_script: [] @@ -268,6 +270,10 @@ release-gitlab-generic-package: curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file ${LINUX_GNU_BIN} ${PACKAGE_REGISTRY_URL}/${LINUX_GNU_BIN} - | curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file ${LINUX_MUSL_BIN} ${PACKAGE_REGISTRY_URL}/${LINUX_MUSL_BIN} + - | + curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file ${LINUX_ARMV7_GNU_BIN} ${PACKAGE_REGISTRY_URL}/${LINUX_ARMV7_GNU_BIN} + - | + curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file ${LINUX_AARCH64_GNU_BIN} ${PACKAGE_REGISTRY_URL}/${LINUX_AARCH64_GNU_BIN} - | curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file ${MACOS_BIN} ${PACKAGE_REGISTRY_URL}/${MACOS_BIN} - | @@ -282,6 +288,8 @@ release-gitlab-release: variables: LINUX_GNU_BIN: "lazymc-x86_64-unknown-linux-gnu" LINUX_MUSL_BIN: "lazymc-x86_64-unknown-linux-musl" + LINUX_ARMV7_GNU_BIN: "lazymc-armv7-unknown-linux-gnueabihf" + LINUX_AARCH64_GNU_BIN: "lazymc-aarch64-unknown-linux-gnu" MACOS_BIN: "lazymc-x86_64-apple-darwin" WINDOWS_BIN: "lazymc-x86_64-pc-windows-msvc.exe" before_script: [] @@ -295,6 +303,8 @@ release-gitlab-release: release-cli create --name "lazymc $CI_COMMIT_TAG" --tag-name $CI_COMMIT_TAG \ --assets-link "{\"name\":\"${LINUX_GNU_BIN}\",\"url\":\"${PACKAGE_REGISTRY_URL}/${LINUX_GNU_BIN}\"}" \ --assets-link "{\"name\":\"${LINUX_MUSL_BIN}\",\"url\":\"${PACKAGE_REGISTRY_URL}/${LINUX_MUSL_BIN}\"}" \ + --assets-link "{\"name\":\"${LINUX_ARMV7_GNU_BIN}\",\"url\":\"${PACKAGE_REGISTRY_URL}/${LINUX_ARMV7_GNU_BIN}\"}" \ + --assets-link "{\"name\":\"${LINUX_AARCH64_GNU_BIN}\",\"url\":\"${PACKAGE_REGISTRY_URL}/${LINUX_AARCH64_GNU_BIN}\"}" \ --assets-link "{\"name\":\"${MACOS_BIN}\",\"url\":\"${PACKAGE_REGISTRY_URL}/${MACOS_BIN}\"}" \ --assets-link "{\"name\":\"${WINDOWS_BIN}\",\"url\":\"${PACKAGE_REGISTRY_URL}/${WINDOWS_BIN}\"}" @@ -306,6 +316,8 @@ release-github: dependencies: - build-x86_64-linux-gnu - build-x86_64-linux-musl + - build-armv7-linux-gnu + - build-aarch64-linux-gnu - build-macos - build-x86_64-windows before_script: [] @@ -323,5 +335,7 @@ release-github: - ./github-release release --token "$GITHUB_TOKEN" --owner timvisee --repo lazymc --tag "$CI_COMMIT_REF_NAME" --title "lazymc $CI_COMMIT_REF_NAME" - ./github-release upload --token "$GITHUB_TOKEN" --owner timvisee --repo lazymc --tag "$CI_COMMIT_REF_NAME" --file ./lazymc-x86_64-unknown-linux-gnu --name lazymc-$CI_COMMIT_REF_NAME-linux-x64 - ./github-release upload --token "$GITHUB_TOKEN" --owner timvisee --repo lazymc --tag "$CI_COMMIT_REF_NAME" --file ./lazymc-x86_64-unknown-linux-musl --name lazymc-$CI_COMMIT_REF_NAME-linux-x64-static + - ./github-release upload --token "$GITHUB_TOKEN" --owner timvisee --repo lazymc --tag "$CI_COMMIT_REF_NAME" --file ./lazymc-armv7-unknown-linux-gnueabihf --name lazymc-$CI_COMMIT_REF_NAME-linux-armv7 + - ./github-release upload --token "$GITHUB_TOKEN" --owner timvisee --repo lazymc --tag "$CI_COMMIT_REF_NAME" --file ./lazymc-aarch64-unknown-linux-gnu --name lazymc-$CI_COMMIT_REF_NAME-linux-aarch64 - ./github-release upload --token "$GITHUB_TOKEN" --owner timvisee --repo lazymc --tag "$CI_COMMIT_REF_NAME" --file ./lazymc-x86_64-apple-darwin --name lazymc-$CI_COMMIT_REF_NAME-macos - ./github-release upload --token "$GITHUB_TOKEN" --owner timvisee --repo lazymc --tag "$CI_COMMIT_REF_NAME" --file ./lazymc-x86_64-pc-windows-msvc.exe --name lazymc-$CI_COMMIT_REF_NAME-windows.exe