serai/.github/workflows/tests.yml
Luke Parker 5b80ead18c
Remove the build CI task now
It's identical to test, except it doesn't grab Foundry nor spawn a 
Monero regtest daemon. It doubles the amount of time test takes though, 
as it's doing everything twice.

While it may have value as a component, we're not using it like that 
right now, and if desired, we could add it back. While it may have value 
to produce binaries, we're note doing that either, and it wasn't 
building in release.
2022-07-23 05:07:13 -04:00

152 lines
3.9 KiB
YAML

name: Tests
on:
push:
branches:
- develop
pull_request:
jobs:
monero-daemon:
runs-on: ubuntu-latest
steps:
- name: Monero cache
id: cache-monerod
uses: actions/cache@v3
with:
path: monerod
key: monerod-${{ runner.os }}-${{ runner.arch }}-v0.17.3.2
- name: Download the Monero Daemon
if: steps.cache-monerod.outputs.cache-hit != 'true'
# Calculates OS/ARCH to demonstrate it, yet then locks to linux-x64 due
# to the contained folder not following the same naming scheme and
# requiring further expansion not worth doing right now
run: |
RUNNER_OS=${{ runner.os }}
RUNNER_ARCH=${{ runner.arch }}
OS_ARCH=${RUNNER_OS,,}-${RUNNER_ARCH,,}
OS_ARCH=linux-x64
wget https://downloads.getmonero.org/cli/monero-$OS_ARCH-v0.17.3.2.tar.bz2
tar -xvf monero-$OS_ARCH-v0.17.3.2.tar.bz2
mv monero-x86_64-linux-gnu-v0.17.3.2/monerod monerod
clippy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
submodules: "recursive"
- name: Install solc
run: |
pip3 install solc-select
solc-select install 0.8.9
solc-select use 0.8.9
- name: Install Monero Dependencies
run: |
sudo apt update
sudo apt install build-essential libboost-all-dev libsodium-dev
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
# Clippy requires nightly for some reason
toolchain: nightly
profile: minimal
default: true
components: clippy
- name: Install WASM toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: nightly
profile: minimal
target: wasm32-unknown-unknown
# Define a separate cache for nightly Rust
- name: Cargo/Rust nightly cache
uses: actions/cache@v3
with:
path: |
~/.cargo
./target
key: ${{ runner.os }}-cargo-rust-nightly
- name: Run Clippy
run: cargo clippy --all-features -- -D warnings -A clippy::type_complexity -A dead_code
test:
runs-on: ubuntu-latest
needs: monero-daemon
steps:
- uses: actions/checkout@v3
with:
submodules: "recursive"
- name: Install solc
run: |
pip3 install solc-select
solc-select install 0.8.9
solc-select use 0.8.9
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly
- name: Install Monero Dependencies
run: |
sudo apt update
sudo apt install build-essential libboost-all-dev libsodium-dev
- name: Monero cache
uses: actions/cache@v3
with:
path: monerod
key: monerod-${{ runner.os }}-${{ runner.arch }}-v0.17.3.2
- name: Monero Regtest Daemon
run: ./monerod --regtest --offline --fixed-difficulty=1 --detach
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
default: true
- name: Install WASM toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: nightly
profile: minimal
target: wasm32-unknown-unknown
- name: Cargo/Rust cache
uses: actions/cache@v3
with:
path: |
~/.cargo
./target
key: ${{ runner.os }}-cargo-rust
- name: Run tests
run: cargo test --all-features
fmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install rustfmt
uses: actions-rs/toolchain@v1
with:
toolchain: nightly
profile: minimal
components: rustfmt
- name: Run rustfmt
run: cargo +nightly fmt -- --check