持续集成

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以获取更多信息。