持续集成
Travis CI
为了在 Travis CI 测试你的包,这里有一个样例配置文件 .travis.yml
:
language: rust
rust:
- stable
- beta
- nightly
matrix:
allow_failures:
- rust: nightly
这将同时测试三个发布通道,每日构建中的问题不会导致整个构建的失败。 查看Travis CI Rust documentation获得更多信息。
GitHub Actions
为在Github Actions中测试你的包,这里有一个样例配置文件 .github/workflows/ci.yml
:
name: Cargo Build & Test
on:
push:
pull_request:
env:
CARGO_TERM_COLOR: always
jobs:
build_and_test:
name: Rust project - latest
runs-on: ubuntu-latest
strategy:
matrix:
toolchain:
- stable
- beta
- nightly
steps:
- uses: actions/checkout@v3
- run: rustup update ${{ matrix.toolchain }} && rustup default ${{ matrix.toolchain }}
- run: cargo build --verbose
- run: cargo test --verbose
这将测试全部的三个发布通道(注意任意toolchain版本的失败会导致整个流程的失败)。
你也可以在Github界面中点击 "Actions" > "new workflow"
,
并在其中选择Rust来为你的库添加 default configuration "默认设置"。
访问GitHub Actions documentation以获得更多信息。
GitLab CI
为在GitLab CI测试你的包,这里有一个样例配置文件 .gitlab-ci.yml
:
stages:
- build
rust-latest:
stage: build
image: rust:latest
script:
- cargo build --verbose
- cargo test --verbose
rust-nightly:
stage: build
image: rustlang/rust:nightly
script:
- cargo build --verbose
- cargo test --verbose
allow_failure: true
这将测试 stable 通道和 nightly 通道,每日构建中的任何失败不会导致整个构建的失败。 请查看GitLab CI documentation获取更多信息。
builds.sr.ht
为在 sr.ht 测试你的包,这里有一个样例设置文件 .build.yml
。
注意将 <your repo>
和 <your project>
修改为你要clone的库以及其被clone到的目录。
image: archlinux
packages:
- rustup
sources:
- <your repo>
tasks:
- setup: |
rustup toolchain install nightly stable
cd <your project>/
rustup run stable cargo fetch
- stable: |
rustup default stable
cd <your project>/
cargo build --verbose
cargo test --verbose
- nightly: |
rustup default nightly
cd <your project>/
cargo build --verbose ||:
cargo test --verbose ||:
- docs: |
cd <your project>/
rustup run stable cargo doc --no-deps
rustup run nightly cargo doc --no-deps ||:
这将为stable 通道和nightly 通道进行测试和构建文档,每日构建中的问题不会导致整个构建的失败。 请查看builds.sr.ht documentation以获取更多信息。