Skip to content

test

test #267

Workflow file for this run

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