From 3eca8f7c0b2fdaac424399ade6c1dbd5561c73ff Mon Sep 17 00:00:00 2001 From: Marc Plano-Lesay Date: Fri, 2 May 2025 17:19:28 +1000 Subject: [PATCH] Attempt at cross-compiling on CI --- .gitlab-ci.yml | 68 +++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 62 insertions(+), 6 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 034ec24..7f0f680 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -18,7 +18,7 @@ tests: - cargo fmt --check - cargo test -build:amd64: +build:linux-x86_64: stage: build image: rust before_script: @@ -28,7 +28,59 @@ build:amd64: - cargo build --release artifacts: paths: - - target/release/reddit-magnet + - target/x86_64-unknown-linux-gnu/release/reddit-magnet + name: reddit-magnet-linux-x86_64 + +build:darwin-aarch64: + stage: build + image: rust + before_script: + - rustc --version + - cargo --version + - rustup target add aarch64-apple-darwin + script: + - cargo build --release --target aarch64-apple-darwin + artifacts: + paths: + - target/aarch64-apple-darwin/release/reddit-magnet + name: reddit-magnet-darwin-aarch64 + +build:darwin-x86_64: + stage: build + image: rust + before_script: + - rustc --version + - cargo --version + - rustup target add x86_64-apple-darwin + script: + - cargo build --release --target x86_64-apple-darwin + artifacts: + paths: + - target/x86_64-apple-darwin/release/reddit-magnet + name: reddit-magnet-darwin-x86_64 + +build:windows-x86_64: + stage: build + services: + - docker:28.1.1-dind + variables: + DOCKER_HOST: tcp://docker:2375/ + DOCKER_DRIVER: overlay2 + CROSS_REMOTE: 1 + image: rust + before_script: + - curl -fsSL https://get.docker.com -o get-docker.sh + - sh ./get-docker.sh + - service docker start + - rustc --version + - cargo --version + - cargo install cross + script: + - cross build --release --target x86_64-pc-windows-gnu + artifacts: + paths: + - target/x86_64-pc-windows-gnu/release/reddit-magnet.exe + name: reddit-magnet-windows-x86_64 rustdoc: stage: build @@ -46,17 +98,21 @@ pages: stage: publish image: alpine dependencies: - - build:amd64 + - build:linux-x86_64 + - build:darwin-aarch64 + - build:darwin-x86_64 + - build:windows-x86_64 - rustdoc script: - mkdir -p public - mv target/doc public/doc - - mv target/release/reddit-magnet public/reddit-magnet-amd64 + - mv target/x86_64-unknown-linux-gnu/release/reddit-magnet public/reddit-magnet-linux-x86_64 + - mv target/aarch64-apple-darwin/release/reddit-magnet public/reddit-magnet-darwin-aarch64 + - mv target/x86_64-apple-darwin/release/reddit-magnet public/reddit-magnet-darwin-x86_64 + - mv target/x86_64-pc-windows-gnu/release/reddit-magnet.exe public/reddit-magnet-windows-x86_64.exe artifacts: paths: - public only: - main ... - -