# copy of https://github.com/actions-rs/meta/blob/master/recipes/quickstart.md # These tasks are supposed to run when updating the main branch. # The steps are identical to those that run on PRs, but this script includes macos environment. on: push: branches: [master] name: Master branch updates check jobs: check: name: Check runs-on: ubuntu-latest strategy: fail-fast: true matrix: feature: [libp2p, waku] steps: - uses: actions/checkout@v2 with: submodules: true - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable override: true - uses: actions-rs/cargo@v1 with: command: check args: --all --no-default-features --features ${{ matrix.feature }} test: name: Test Suite strategy: fail-fast: false # all OSes should be tested even if one fails (default: true) matrix: feature: [libp2p, waku] os: [ubuntu-latest, windows-latest, macos-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v2 with: submodules: true - uses: actions/setup-go@v3 # we need go to build go-waku with: go-version: '1.19' # Setup Rust toolchain with GNU for Windows - name: Setup Rust with GNU toolchain (Windows) if: matrix.os == 'windows-latest' uses: actions-rs/toolchain@v1 with: toolchain: stable-gnu target: x86_64-pc-windows-gnu override: true # Setup Rust toolchain for other OSes - name: Setup Rust toolchain (Other OSes) if: matrix.os != 'windows-latest' uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable override: true - uses: actions-rs/cargo@v1 with: command: build args: --all --no-default-features --features ${{ matrix.feature }} - uses: actions-rs/cargo@v1 with: command: test args: --all --no-default-features --features ${{ matrix.feature }} -- --skip ten_nodes_happy --skip two_nodes_happy --skip ten_nodes_one_down lints: name: Rust lints runs-on: ubuntu-latest strategy: matrix: feature: [libp2p, waku] steps: - uses: actions/checkout@v2 with: submodules: true - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable override: true components: rustfmt, clippy - name: Run cargo fmt uses: actions-rs/cargo@v1 with: command: fmt args: --all -- --check - name: Run cargo clippy uses: actions-rs/cargo@v1 with: command: clippy args: --all --no-default-features --features ${{ matrix.feature }} -- --deny warnings