feat: make ci/cd pipeline multi-target
This commit is contained in:
parent
e2755a5f38
commit
c770784712
1 changed files with 59 additions and 11 deletions
|
@ -1,20 +1,68 @@
|
||||||
stages:
|
stages:
|
||||||
- test
|
|
||||||
- build
|
- build
|
||||||
- publish
|
|
||||||
|
|
||||||
tests:
|
variables:
|
||||||
stage: test
|
RUSTUP_TOOLCHAIN: stable
|
||||||
image: rust
|
|
||||||
script:
|
|
||||||
- cargo test
|
|
||||||
|
|
||||||
build:
|
build:
|
||||||
stage: build
|
stage: build
|
||||||
image: rust
|
image: rust:latest
|
||||||
|
|
||||||
|
services:
|
||||||
|
- name: docker:24.0.5‑dind
|
||||||
|
alias: docker
|
||||||
|
|
||||||
|
variables:
|
||||||
|
DOCKER_HOST: tcp://docker:2375
|
||||||
|
DOCKER_TLS_CERTDIR: ""
|
||||||
|
DOCKER_DRIVER: overlay2
|
||||||
|
|
||||||
|
privileged: true
|
||||||
|
|
||||||
|
parallel:
|
||||||
|
matrix:
|
||||||
|
- TARGET: x86_64-unknown-linux-gnu
|
||||||
|
BINARY_NAME: zenyx-x86_64-linux
|
||||||
|
EXT: ""
|
||||||
|
- TARGET: aarch64-unknown-linux-gnu
|
||||||
|
BINARY_NAME: zenyx-aarch64-linux
|
||||||
|
EXT: ""
|
||||||
|
- TARGET: powerpc64le-unknown-linux-gnu
|
||||||
|
BINARY_NAME: zenyx-powerpc64le-linux
|
||||||
|
EXT: ""
|
||||||
|
- TARGET: s390x-unknown-linux-gnu
|
||||||
|
BINARY_NAME: zenyx-s390x-linux
|
||||||
|
EXT: ""
|
||||||
|
- TARGET: riscv64gc-unknown-linux-gnu
|
||||||
|
BINARY_NAME: zenyx-riscv64-linux
|
||||||
|
EXT: ""
|
||||||
|
- TARGET: x86_64-pc-windows-gnu
|
||||||
|
BINARY_NAME: zenyx-x86_64-windows-gnu.exe
|
||||||
|
EXT: ".exe"
|
||||||
|
- TARGET: x86_64-pc-windows-msvc
|
||||||
|
BINARY_NAME: zenyx-x86_64-windows-msvc.exe
|
||||||
|
EXT: ".exe"
|
||||||
|
|
||||||
|
cache:
|
||||||
|
key: "${CI_JOB_NAME}-${TARGET}-${CI_COMMIT_SHA}"
|
||||||
|
policy: pull-push
|
||||||
|
paths:
|
||||||
|
- "$HOME/.cargo/registry"
|
||||||
|
- "$HOME/.cargo/git"
|
||||||
|
- target
|
||||||
|
|
||||||
|
before_script:
|
||||||
|
- apt-get update && apt-get install -y docker.io
|
||||||
|
- rustup target add "$TARGET"
|
||||||
|
- cargo install cross --locked
|
||||||
|
|
||||||
script:
|
script:
|
||||||
- cargo build --release
|
- cross build --target "$TARGET" --release
|
||||||
|
- mkdir -p artifacts
|
||||||
|
- cp "target/$TARGET/release/zenyx$EXT" "artifacts/$BINARY_NAME"
|
||||||
|
|
||||||
artifacts:
|
artifacts:
|
||||||
paths:
|
paths:
|
||||||
- target/release/zenyx
|
- artifacts/*
|
||||||
|
expire_in: 1 week
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue