Skip to content

test

test #274

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.48.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
- toolchain: '1.48.0'
msrv: true
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.msrv
- 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 oauth1-request/Cargo.toml --no-default-features '--features=${{ matrix.features }}'
- name: Check docs of `oauth1-request`
if: ${{ !matrix.msrv && matrix.features == 'js,derive' }}
uses: actions-rs/cargo@v1
with:
command: doc
args: --verbose --manifest-path oauth1-request/Cargo.toml --no-default-features '--features=${{ matrix.features }}' --no-deps
- name: Build `oauth1-request`
if: ${{ !matrix.msrv }}
uses: actions-rs/cargo@v1
with:
command: build
args: --verbose --tests --manifest-path oauth1-request/Cargo.toml --no-default-features '--features=${{ matrix.features }}'
- name: Check `oauth1-request`
if: matrix.msrv && matrix.features == 'js'
uses: actions-rs/cargo@v1
with:
command: check
args: --verbose --manifest-path oauth1-request-test/Cargo.toml --no-default-features '--features=${{ matrix.features }}'
- name: Build `examples`
if: ${{ !matrix.msrv && matrix.target == '' }}
uses: actions-rs/cargo@v1
with:
command: build
args: --verbose --manifest-path examples/Cargo.toml
- name: Test `oauth1-request`
if: ${{ !matrix.msrv && matrix.target == '' }}
uses: actions-rs/cargo@v1
with:
command: test
args: --manifest-path oauth1-request/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