瀏覽代碼

Migrate to github actions

Veetaha 4 年之前
父節點
當前提交
9e43a37345
共有 2 個文件被更改,包括 70 次插入6 次删除
  1. 70 0
      .github/workflows/ci.yml
  2. 0 6
      .travis.yml

+ 70 - 0
.github/workflows/ci.yml

@@ -0,0 +1,70 @@
+name: ci
+
+on: [pull_request, push]
+
+env:
+  # Just a reassurance to mitigate sudden network connection problems
+  CARGO_NET_RETRY: 10
+  RUSTUP_MAX_RETRIES: 10
+
+  CARGO_INCREMENTAL: 0
+  RUST_BACKTRACE: full
+
+  # We don't need any debug symbols on ci, this also speeds up builds a bunch
+  RUSTFLAGS: --deny warnings -Cdebuginfo=0
+  RUSTDOCFLAGS: --deny warnings
+
+jobs:
+  rust-lint:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v2
+      - uses: actions-rs/toolchain@v1
+        with:
+          toolchain: stable
+          profile: minimal
+          components: rustfmt, clippy
+
+      - run: cargo clippy --workspace
+      - run: cargo fmt --all -- --check
+
+  rust-test:
+    runs-on: ${{ matrix.os }}
+
+    # We don't want unstable jobs to fail our cicd
+    continue-on-error: ${{ matrix.toolchain != 'stable' }}
+
+    strategy:
+      matrix:
+        os: [ubuntu-latest, windows-latest, macos-latest]
+        toolchain: [stable]
+        include:
+          - { os: ubuntu-latest, toolchain: beta }
+          - { os: ubuntu-latest, toolchain: nightly }
+
+    steps:
+      - uses: actions/checkout@v2
+      - uses: actions-rs/toolchain@v1
+        with:
+          toolchain: ${{ matrix.toolchain }}
+          profile: minimal
+
+      - run: cargo +${{ matrix.toolchain }} build --workspace
+      - run: cargo +${{ matrix.toolchain }} test --workspace --no-run
+      - run: cargo +${{ matrix.toolchain }} test --workspace
+
+  rust-publish-crates:
+    # Publishing goes when we create a new git tag on the repo
+    if: startsWith(github.ref, 'refs/tags/')
+    runs-on: ubuntu-latest
+    # XXX: this job must execute only if all checks pass!
+    needs:
+      - rust-lint
+      - rust-test
+    steps:
+      - uses: actions/checkout@v2
+      - uses: actions-rs/toolchain@v1
+        with:
+          toolchain: stable
+          profile: minimal
+      - run: cargo publish --token ${{ secrets.CRATES_TOKEN }})

+ 0 - 6
.travis.yml

@@ -1,6 +0,0 @@
-language: rust
-rust:
-  - stable
-  - beta
-  - nightly
-sudo: false