Skip to content

Merge pull request #917 from g-r-a-n-t/finish-buf-refactor #95

Merge pull request #917 from g-r-a-n-t/finish-buf-refactor

Merge pull request #917 from g-r-a-n-t/finish-buf-refactor #95

Workflow file for this run

name: CI
on:
push:
branches: [master]
tags:
- v*
pull_request:
env:
CARGO_TERM_COLOR: always
CARGO_INCREMENTAL: 0
RUSTFLAGS: "-D warnings"
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y libboost-all-dev
- name: Install rust
uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
components: rustfmt, clippy
- name: Cache Dependencies
uses: Swatinem/rust-cache@v2
- name: Validate release notes entry
run: ./newsfragments/validate_files.py
- name: Lint with rustfmt
run: cargo fmt --all -- --check
- name: Lint with clippy
run: cargo clippy --workspace --all-targets --all-features -- -D clippy::all
book:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install rust
uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
- name: Cache Dependencies
uses: Swatinem/rust-cache@v2
- name: install mdbook & mdbook-linkcheck
run: |
cargo install mdbook
cargo install mdbook-linkcheck
- name: Validate links in book
run: |
mdbook build docs/
- name: Validate doc examples
run: ./docs/validate_doc_examples.py
test:
# Build & Test runs on all platforms
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- os: ubuntu-latest
- os: macOS-latest
steps:
- uses: actions/checkout@v3
- name: Install Mac System dependencies
if: startsWith(matrix.os,'macOS')
run: |
brew install boost
- name: Install Linux dependencies
if: startsWith(matrix.os,'ubuntu')
run: |
sudo apt-get update
sudo apt-get install -y libboost-all-dev
- name: Install rust
uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
- name: Cache Dependencies
uses: Swatinem/rust-cache@v2
- name: Build
run: cargo test --workspace --all-features --no-run --locked
- name: Run tests
run: cargo test --workspace --all-features --verbose
wasm-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install rust
uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
- name: Install wasm-pack
run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
- name: Cache Dependencies
uses: Swatinem/rust-cache@v2
- name: Run WASM tests
# wasm-pack needs a Cargo.toml with a 'package' field.
# (see https://github.com/rustwasm/wasm-pack/issues/642)
# This will still run all tests in the workspace.
run: wasm-pack test --node crates/fe --workspace
release:
# Only run this when we push a tag
if: startsWith(github.ref, 'refs/tags/')
runs-on: ${{ matrix.os }}
# needs: [lint, test, wasm-test]
needs: [lint, test]
strategy:
matrix:
include:
- os: ubuntu-latest
BIN_FILE: fe_amd64
- os: macOS-latest
BIN_FILE: fe_mac
steps:
- uses: actions/checkout@v3
- name: Install Linux dependencies
if: startsWith(matrix.os,'ubuntu')
run: |
sudo apt-get update
sudo apt-get install -y libboost-all-dev
- name: Install Mac System dependencies
if: startsWith(matrix.os,'macOS')
run: |
brew install boost
- name: Install rust
uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
- name: Build
run: cargo build --all-features --release && strip target/release/fe && mv target/release/fe target/release/${{ matrix.BIN_FILE }}
- name: Release
uses: softprops/action-gh-release@v1
with:
files: target/release/${{ matrix.BIN_FILE }}
prerelease: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}