118 lines
2.6 KiB
YAML
118 lines
2.6 KiB
YAML
---
|
|
stages:
|
|
- test
|
|
- build
|
|
- publish
|
|
|
|
|
|
default:
|
|
|
|
tests:
|
|
stage: test
|
|
image: rust
|
|
before_script:
|
|
- rustc --version
|
|
- cargo --version
|
|
- rustup component add rustfmt
|
|
script:
|
|
- cargo fmt --check
|
|
- cargo test
|
|
|
|
build:linux-x86_64:
|
|
stage: build
|
|
image: rust
|
|
before_script:
|
|
- rustc --version
|
|
- cargo --version
|
|
script:
|
|
- cargo build --release
|
|
artifacts:
|
|
paths:
|
|
- 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
|
|
image: rust
|
|
before_script:
|
|
- rustc --version
|
|
- cargo --version
|
|
script:
|
|
- cargo doc
|
|
artifacts:
|
|
paths:
|
|
- target/doc
|
|
|
|
pages:
|
|
stage: publish
|
|
image: alpine
|
|
dependencies:
|
|
- 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/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
|
|
...
|