Attempt at cross-compiling on CI

This commit is contained in:
Marc Plano-Lesay 2025-05-02 17:19:28 +10:00
parent a454d57af5
commit 3eca8f7c0b
Signed by: kernald
GPG key ID: 66A41B08CC62A6CF

View file

@ -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
...