test #266
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: [push, pull_request] | |
jobs: | |
fmt: | |
name: Rustfmt | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install Rust toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
profile: minimal | |
components: rustfmt | |
- name: cargo fmt -- --check | |
uses: actions-rs/cargo@v1 | |
with: | |
command: fmt | |
args: -- --check | |
test: | |
name: Test | |
runs-on: ubuntu-latest | |
env: | |
CARGO_INCREMENTAL: 0 | |
CARGO_PROFILE_DEBUG_DEBUG: 0 | |
CARGO_TARGET_DIR: target | |
RUSTDOCFLAGS: --deny warnings | |
RUSTFLAGS: --deny warnings | |
RUST_BACKTRACE: 1 | |
strategy: | |
fail-fast: false | |
matrix: | |
toolchain: | |
- stable | |
- beta | |
- nightly | |
- '1.46.0' | |
target: | |
- | |
features: | |
- js | |
- js,derive | |
- js,hmac-sha1 | |
include: | |
- toolchain: stable | |
components: clippy | |
- toolchain: beta | |
components: clippy | |
- toolchain: nightly | |
components: clippy | |
- toolchain: stable | |
features: js | |
target: wasm32-unknown-unknown | |
- crate_name: oauth1-request | |
- toolchain: '1.46.0' | |
crate_name: oauth1-request-test | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install Rust toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: ${{ matrix.toolchain }} | |
target: ${{ matrix.target }} | |
profile: minimal | |
override: true | |
components: ${{ matrix.components }} | |
- uses: Swatinem/rust-cache@v1 | |
with: | |
key: ${{ matrix.target }} | |
- name: Install `wasm-bindgen-test-runner` | |
if: matrix.target == 'wasm32-unknown-unknown' | |
run: | | |
VER=0.2.78 | |
NAME="wasm-bindgen-$VER-x86_64-unknown-linux-musl" | |
DIGEST=14f1b0ef9225370f0d270efbdbbfe2cf5eb191d57b8eec14ade69c98c71e226f | |
curl -fLOsS "https://github.com/rustwasm/wasm-bindgen/releases/download/$VER/$NAME.tar.gz" | |
sha256sum --check --quiet <<< "$DIGEST $NAME.tar.gz" | |
tar -xzf "$NAME.tar.gz" "$NAME/wasm-bindgen-test-runner" | |
mv "$NAME/wasm-bindgen-test-runner" /usr/local/bin/ | |
- run: echo "RUSTFLAGS=$RUSTFLAGS --allow unknown_lints" >> "$GITHUB_ENV" | |
if: matrix.toolchain == '1.46.0' | |
- run: echo 'CARGO_BUILD_TARGET=${{ matrix.target }}' >> "$GITHUB_ENV" | |
if: matrix.target != '' | |
- name: Clippy `oauth1-request` | |
if: contains(matrix.components, 'clippy') | |
uses: actions-rs/cargo@v1 | |
with: | |
command: clippy | |
args: --verbose --tests --manifest-path ${{ matrix.crate_name }}/Cargo.toml --no-default-features '--features=${{ matrix.features }}' | |
- name: Check docs of `oauth1-request` | |
if: matrix.features == 'js,derive' | |
uses: actions-rs/cargo@v1 | |
with: | |
command: doc | |
args: --verbose --manifest-path ${{ matrix.crate_name }}/Cargo.toml --no-default-features '--features=${{ matrix.features }}' --no-deps | |
- name: Build `oauth1-request` | |
if: matrix.crate_name != 'oauth1-request-test' || !contains(matrix.features, 'derive') | |
uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
args: --verbose --tests --manifest-path ${{ matrix.crate_name }}/Cargo.toml --no-default-features '--features=${{ matrix.features }}' | |
- name: Build `examples` | |
if: ${{ matrix.target == '' && matrix.toolchain != '1.46.0' }} | |
uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
args: --verbose --manifest-path examples/Cargo.toml | |
- name: Test `oauth1-request` | |
if: ${{ matrix.target == '' && matrix.toolchain != '1.46.0' }} | |
uses: actions-rs/cargo@v1 | |
with: | |
command: test | |
args: --manifest-path ${{ matrix.crate_name }}/Cargo.toml --no-default-features '--features=${{ matrix.features }}' | |
derive-test: | |
name: Test `oauth1-request-derive` | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
toolchain: | |
- stable | |
- beta | |
- nightly | |
# UI test results changes frequently and sometimes there may not be any way to | |
# make the test pass for all toolchains at the same time. | |
# Also, we don't want the workflow to break nightly :) | |
continue-on-error: ${{ matrix.toolchain != 'stable' }} | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install Rust toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: ${{ matrix.toolchain }} | |
profile: minimal | |
override: true | |
- uses: Swatinem/rust-cache@v1 | |
- name: Build `oauth1-request-derive` | |
uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
args: --verbose --tests --manifest-path oauth1-request-derive/Cargo.toml | |
- name: Test `oauth1-request-derive` | |
uses: actions-rs/cargo@v1 | |
with: | |
command: test | |
args: --verbose --manifest-path oauth1-request-derive/Cargo.toml | |
credentials-msrv: | |
name: Build `oauth-credentials` on MSRV | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
toolchain: | |
- '1.0.0' | |
- '1.6.0' | |
- '1.36.0' | |
include: | |
- toolchain: '1.0.0' | |
features: std | |
- toolchain: '1.6.0' | |
- toolchain: '1.36.0' | |
features: alloc | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install Rust toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: ${{ matrix.toolchain }} | |
profile: minimal | |
override: true | |
- uses: Swatinem/rust-cache@v1 | |
- uses: actions/checkout@v2 | |
with: | |
repository: rust-lang/crates.io-index | |
ref: 46a429eac9f70fd7281922780d7dd42e2fb7ab77 | |
path: crates.io-index | |
- name: Workaround compatibility issues of Cargo | |
run: | | |
# Remove the virtual manifest because Rust 1.13.0 run fails when built as a workspace member. | |
rm Cargo.toml | |
# Reference: <https://github.com/mcgoo/vcpkg-rs/blob/f75707b/.github/workflows/rust-1.12.yml> | |
mkdir -p oauth-credentials/.cargo | |
cat <<EOF >> oauth-credentials/.cargo/config | |
[source.crates-io] | |
registry = "file://$GITHUB_WORKSPACE/crates.io-index" | |
EOF | |
- name: Build `oauth-credentials` | |
uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
# Toolchains older than 1.8.0 cannot compile `oauth-credentials` directly | |
# because the toolchains do not understand Cargo registry's information for `serde` | |
# (see <https://github.com/rust-lang/cargo/issues/3763>). | |
# So, with these toolchains, we instead build a dependant crate of `oauth-credentials` | |
# without `serde` feature. | |
args: --verbose --manifest-path oauth-credentials-test/Cargo.toml --no-default-features --features=${{ matrix.features }} | |
credentials-test: | |
name: Test `oauth-credentials` | |
runs-on: ubuntu-latest | |
env: | |
RUSTFLAGS: --allow unknown_lints | |
strategy: | |
fail-fast: false | |
matrix: | |
toolchain: | |
- stable | |
- beta | |
- nightly | |
features: | |
- serde | |
- std | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install Rust toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: ${{ matrix.toolchain }} | |
profile: minimal | |
override: true | |
- uses: Swatinem/rust-cache@v1 | |
- name: Build `oauth-credentials` | |
uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
args: --verbose --manifest-path oauth-credentials/Cargo.toml --features=${{ matrix.features }} | |
- name: Test `oauth-credentials` | |
uses: actions-rs/cargo@v1 | |
with: | |
command: test | |
args: --verbose --manifest-path oauth-credentials/Cargo.toml --features=${{ matrix.features }} | |
min-deps: | |
name: Check with `-Z minimal-versions` | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install Rust toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
profile: minimal | |
- uses: Swatinem/rust-cache@v1 | |
- name: Cargo update | |
uses: actions-rs/cargo@v1 | |
with: | |
command: update | |
args: -Z minimal-versions | |
env: | |
RUSTC_BOOTSTRAP: 1 | |
- name: Check | |
uses: actions-rs/cargo@v1 | |
with: | |
command: check | |
args: --verbose --all-features |