Merge pull request #310 from str4d/update-ci
Update Actions CI with improved workflow
This commit is contained in:
commit
6f039a3069
|
@ -3,40 +3,6 @@ name: CI checks
|
||||||
on: [push, pull_request]
|
on: [push, pull_request]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
lint:
|
|
||||||
name: Lint
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v1
|
|
||||||
- uses: actions-rs/toolchain@v1
|
|
||||||
with:
|
|
||||||
toolchain: 1.44.1
|
|
||||||
override: true
|
|
||||||
|
|
||||||
# cargo fmt does not build the code, and running it in a fresh clone of
|
|
||||||
# the codebase will fail because the protobuf code has not been generated.
|
|
||||||
- name: cargo build
|
|
||||||
uses: actions-rs/cargo@v1
|
|
||||||
with:
|
|
||||||
command: build
|
|
||||||
args: --all
|
|
||||||
|
|
||||||
# Ensure all code has been formatted with rustfmt
|
|
||||||
- run: rustup component add rustfmt
|
|
||||||
- name: Check formatting
|
|
||||||
uses: actions-rs/cargo@v1
|
|
||||||
with:
|
|
||||||
command: fmt
|
|
||||||
args: --all -- --check --color always
|
|
||||||
|
|
||||||
# Build benchmarks to prevent bitrot
|
|
||||||
- name: Build benchmarks
|
|
||||||
uses: actions-rs/cargo@v1
|
|
||||||
with:
|
|
||||||
command: build
|
|
||||||
args: --all --benches
|
|
||||||
|
|
||||||
test:
|
test:
|
||||||
name: Test on ${{ matrix.os }}
|
name: Test on ${{ matrix.os }}
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
|
@ -45,7 +11,7 @@ jobs:
|
||||||
os: [ubuntu-latest, windows-latest, macOS-latest]
|
os: [ubuntu-latest, windows-latest, macOS-latest]
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v1
|
- uses: actions/checkout@v2
|
||||||
- uses: actions-rs/toolchain@v1
|
- uses: actions-rs/toolchain@v1
|
||||||
with:
|
with:
|
||||||
toolchain: 1.44.1
|
toolchain: 1.44.1
|
||||||
|
@ -65,15 +31,6 @@ jobs:
|
||||||
working-directory: ./zcash_proofs
|
working-directory: ./zcash_proofs
|
||||||
run: cargo run --release --example download-params --features download-params
|
run: cargo run --release --example download-params --features download-params
|
||||||
|
|
||||||
- name: cargo fetch
|
|
||||||
uses: actions-rs/cargo@v1
|
|
||||||
with:
|
|
||||||
command: fetch
|
|
||||||
- name: Build tests
|
|
||||||
uses: actions-rs/cargo@v1
|
|
||||||
with:
|
|
||||||
command: build
|
|
||||||
args: --all-features --verbose --release --all --tests
|
|
||||||
- name: Run tests
|
- name: Run tests
|
||||||
uses: actions-rs/cargo@v1
|
uses: actions-rs/cargo@v1
|
||||||
with:
|
with:
|
||||||
|
@ -95,7 +52,7 @@ jobs:
|
||||||
- wasm32-wasi
|
- wasm32-wasi
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v1
|
- uses: actions/checkout@v2
|
||||||
- uses: actions-rs/toolchain@v1
|
- uses: actions-rs/toolchain@v1
|
||||||
with:
|
with:
|
||||||
toolchain: 1.44.1
|
toolchain: 1.44.1
|
||||||
|
@ -109,13 +66,71 @@ jobs:
|
||||||
- name: Build zcash_proofs for target
|
- name: Build zcash_proofs for target
|
||||||
working-directory: ./zcash_proofs
|
working-directory: ./zcash_proofs
|
||||||
run: cargo build --verbose --no-default-features --target ${{ matrix.target }}
|
run: cargo build --verbose --no-default-features --target ${{ matrix.target }}
|
||||||
|
- name: Build zcash_client_backend for target
|
||||||
|
working-directory: ./zcash_client_backend
|
||||||
|
run: cargo build --verbose --no-default-features --target ${{ matrix.target }}
|
||||||
|
|
||||||
|
bitrot:
|
||||||
|
name: Bitrot check
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: actions-rs/toolchain@v1
|
||||||
|
with:
|
||||||
|
toolchain: 1.44.1
|
||||||
|
override: true
|
||||||
|
# Build benchmarks to prevent bitrot
|
||||||
|
- name: Build benchmarks
|
||||||
|
uses: actions-rs/cargo@v1
|
||||||
|
with:
|
||||||
|
command: build
|
||||||
|
args: --all --benches
|
||||||
|
|
||||||
|
clippy:
|
||||||
|
name: Clippy (1.44.1)
|
||||||
|
timeout-minutes: 30
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: actions-rs/toolchain@v1
|
||||||
|
with:
|
||||||
|
toolchain: 1.44.1
|
||||||
|
components: clippy
|
||||||
|
override: true
|
||||||
|
- name: Run clippy
|
||||||
|
uses: actions-rs/clippy-check@v1
|
||||||
|
with:
|
||||||
|
name: Clippy (1.44.1)
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
args: --all-features --all-targets -- -D warnings
|
||||||
|
|
||||||
|
clippy-nightly:
|
||||||
|
name: Clippy (nightly)
|
||||||
|
timeout-minutes: 30
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
continue-on-error: true
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: actions-rs/toolchain@v1
|
||||||
|
with:
|
||||||
|
toolchain: nightly
|
||||||
|
components: clippy
|
||||||
|
override: true
|
||||||
|
- name: Run Clippy (nightly)
|
||||||
|
uses: actions-rs/clippy-check@v1
|
||||||
|
continue-on-error: true
|
||||||
|
with:
|
||||||
|
name: Clippy (nightly)
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
args: --all-features --all-targets -- -W clippy::all
|
||||||
|
|
||||||
codecov:
|
codecov:
|
||||||
name: Code coverage
|
name: Code coverage
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v1
|
- uses: actions/checkout@v2
|
||||||
# Use stable for this to ensure that cargo-tarpaulin can be built.
|
# Use stable for this to ensure that cargo-tarpaulin can be built.
|
||||||
- uses: actions-rs/toolchain@v1
|
- uses: actions-rs/toolchain@v1
|
||||||
with:
|
with:
|
||||||
|
@ -147,16 +162,16 @@ jobs:
|
||||||
command: tarpaulin
|
command: tarpaulin
|
||||||
args: --all-features --release --timeout 600 --out Xml
|
args: --all-features --release --timeout 600 --out Xml
|
||||||
- name: Upload coverage to Codecov
|
- name: Upload coverage to Codecov
|
||||||
uses: codecov/codecov-action@v1.0.3
|
uses: codecov/codecov-action@v1
|
||||||
with:
|
with:
|
||||||
token: ${{secrets.CODECOV_TOKEN}}
|
token: ${{secrets.CODECOV_TOKEN}}
|
||||||
|
|
||||||
doc-links:
|
doc-links:
|
||||||
name: Nightly lint
|
name: Intra-doc links
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v1
|
- uses: actions/checkout@v2
|
||||||
- uses: actions-rs/toolchain@v1
|
- uses: actions-rs/toolchain@v1
|
||||||
with:
|
with:
|
||||||
toolchain: nightly
|
toolchain: nightly
|
||||||
|
@ -173,3 +188,30 @@ jobs:
|
||||||
with:
|
with:
|
||||||
command: doc
|
command: doc
|
||||||
args: --all --document-private-items
|
args: --all --document-private-items
|
||||||
|
|
||||||
|
fmt:
|
||||||
|
name: Rustfmt
|
||||||
|
timeout-minutes: 30
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: actions-rs/toolchain@v1
|
||||||
|
with:
|
||||||
|
toolchain: 1.44.1
|
||||||
|
override: true
|
||||||
|
|
||||||
|
# cargo fmt does not build the code, and running it in a fresh clone of
|
||||||
|
# the codebase will fail because the protobuf code has not been generated.
|
||||||
|
- name: cargo build
|
||||||
|
uses: actions-rs/cargo@v1
|
||||||
|
with:
|
||||||
|
command: build
|
||||||
|
args: --all
|
||||||
|
|
||||||
|
# Ensure all code has been formatted with rustfmt
|
||||||
|
- run: rustup component add rustfmt
|
||||||
|
- name: Check formatting
|
||||||
|
uses: actions-rs/cargo@v1
|
||||||
|
with:
|
||||||
|
command: fmt
|
||||||
|
args: --all -- --check
|
||||||
|
|
|
@ -62,6 +62,8 @@ impl Node {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Clippy incorrectly interprets the first argument as `self`.
|
||||||
|
#[allow(clippy::wrong_self_convention)]
|
||||||
fn from_children(a: Node, b: Node, trim: usize) -> Self {
|
fn from_children(a: Node, b: Node, trim: usize) -> Self {
|
||||||
let hash: Vec<_> = a
|
let hash: Vec<_> = a
|
||||||
.hash
|
.hash
|
||||||
|
|
Loading…
Reference in New Issue