serai/.github/workflows/tests.yml

153 lines
3.9 KiB
YAML
Raw Normal View History

set up CI (#45) * begin to setup ci * attempt to fix build * fix paths in build script * fix * satisfy clippy * update fmt check to use nightly * use nightly for build * fmt * fix fmt install * update test script * try to fix fmt * merge w develop * maybe fix build script * install wasm toolchain * install solc-select, use stable rust to build * Correct clippy warnings Currently intended to be done with: cargo clippy --features "recommended merlin batch serialize experimental ed25519 ristretto p256 secp256k1 multisig" -- -A clippy::type_complexity -A dead_code * Remove try-runtime I tried to get this to work for an hour. I have no idea why it doesn't, yet it doesn't. * Rewrite workflow Splits tasks into a more modular structure. Also uses actions-rs/toolchain. * Add a cache * Immediately try building ETH/Monero while this is fixed Adds solc-select use. * Revert selective advance building of ETH/XMR ETH builds now, so it hopefully should work now. Also moves from on push to on push to develop. * Install Monero runtime dependencies Specify missing Rust toolchain setting. * Correct multi-line commands * Fix multi-line commands again Cache Ethereum artifacts. * Add Foundry * Move Clippy under build * Minimal rustup Adds wasm Clippy. Puts Clippy before build. * Use nightly clippy * Remove old clippy call from under build * Have the Monero build script support ARCH specification Requirement for CI. * Add WASM toolchain to tests * Remove Ethereum cache which did not work as needed * Remove extraneous quotes which broke builds on Arch Co-authored-by: Luke Parker <lukeparker5132@gmail.com>
2022-07-22 16:31:29 +00:00
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
set up CI (#45) * begin to setup ci * attempt to fix build * fix paths in build script * fix * satisfy clippy * update fmt check to use nightly * use nightly for build * fmt * fix fmt install * update test script * try to fix fmt * merge w develop * maybe fix build script * install wasm toolchain * install solc-select, use stable rust to build * Correct clippy warnings Currently intended to be done with: cargo clippy --features "recommended merlin batch serialize experimental ed25519 ristretto p256 secp256k1 multisig" -- -A clippy::type_complexity -A dead_code * Remove try-runtime I tried to get this to work for an hour. I have no idea why it doesn't, yet it doesn't. * Rewrite workflow Splits tasks into a more modular structure. Also uses actions-rs/toolchain. * Add a cache * Immediately try building ETH/Monero while this is fixed Adds solc-select use. * Revert selective advance building of ETH/XMR ETH builds now, so it hopefully should work now. Also moves from on push to on push to develop. * Install Monero runtime dependencies Specify missing Rust toolchain setting. * Correct multi-line commands * Fix multi-line commands again Cache Ethereum artifacts. * Add Foundry * Move Clippy under build * Minimal rustup Adds wasm Clippy. Puts Clippy before build. * Use nightly clippy * Remove old clippy call from under build * Have the Monero build script support ARCH specification Requirement for CI. * Add WASM toolchain to tests * Remove Ethereum cache which did not work as needed * Remove extraneous quotes which broke builds on Arch Co-authored-by: Luke Parker <lukeparker5132@gmail.com>
2022-07-22 16:31:29 +00:00
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
set up CI (#45) * begin to setup ci * attempt to fix build * fix paths in build script * fix * satisfy clippy * update fmt check to use nightly * use nightly for build * fmt * fix fmt install * update test script * try to fix fmt * merge w develop * maybe fix build script * install wasm toolchain * install solc-select, use stable rust to build * Correct clippy warnings Currently intended to be done with: cargo clippy --features "recommended merlin batch serialize experimental ed25519 ristretto p256 secp256k1 multisig" -- -A clippy::type_complexity -A dead_code * Remove try-runtime I tried to get this to work for an hour. I have no idea why it doesn't, yet it doesn't. * Rewrite workflow Splits tasks into a more modular structure. Also uses actions-rs/toolchain. * Add a cache * Immediately try building ETH/Monero while this is fixed Adds solc-select use. * Revert selective advance building of ETH/XMR ETH builds now, so it hopefully should work now. Also moves from on push to on push to develop. * Install Monero runtime dependencies Specify missing Rust toolchain setting. * Correct multi-line commands * Fix multi-line commands again Cache Ethereum artifacts. * Add Foundry * Move Clippy under build * Minimal rustup Adds wasm Clippy. Puts Clippy before build. * Use nightly clippy * Remove old clippy call from under build * Have the Monero build script support ARCH specification Requirement for CI. * Add WASM toolchain to tests * Remove Ethereum cache which did not work as needed * Remove extraneous quotes which broke builds on Arch Co-authored-by: Luke Parker <lukeparker5132@gmail.com>
2022-07-22 16:31:29 +00:00
- 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
set up CI (#45) * begin to setup ci * attempt to fix build * fix paths in build script * fix * satisfy clippy * update fmt check to use nightly * use nightly for build * fmt * fix fmt install * update test script * try to fix fmt * merge w develop * maybe fix build script * install wasm toolchain * install solc-select, use stable rust to build * Correct clippy warnings Currently intended to be done with: cargo clippy --features "recommended merlin batch serialize experimental ed25519 ristretto p256 secp256k1 multisig" -- -A clippy::type_complexity -A dead_code * Remove try-runtime I tried to get this to work for an hour. I have no idea why it doesn't, yet it doesn't. * Rewrite workflow Splits tasks into a more modular structure. Also uses actions-rs/toolchain. * Add a cache * Immediately try building ETH/Monero while this is fixed Adds solc-select use. * Revert selective advance building of ETH/XMR ETH builds now, so it hopefully should work now. Also moves from on push to on push to develop. * Install Monero runtime dependencies Specify missing Rust toolchain setting. * Correct multi-line commands * Fix multi-line commands again Cache Ethereum artifacts. * Add Foundry * Move Clippy under build * Minimal rustup Adds wasm Clippy. Puts Clippy before build. * Use nightly clippy * Remove old clippy call from under build * Have the Monero build script support ARCH specification Requirement for CI. * Add WASM toolchain to tests * Remove Ethereum cache which did not work as needed * Remove extraneous quotes which broke builds on Arch Co-authored-by: Luke Parker <lukeparker5132@gmail.com>
2022-07-22 16:31:29 +00:00
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
set up CI (#45) * begin to setup ci * attempt to fix build * fix paths in build script * fix * satisfy clippy * update fmt check to use nightly * use nightly for build * fmt * fix fmt install * update test script * try to fix fmt * merge w develop * maybe fix build script * install wasm toolchain * install solc-select, use stable rust to build * Correct clippy warnings Currently intended to be done with: cargo clippy --features "recommended merlin batch serialize experimental ed25519 ristretto p256 secp256k1 multisig" -- -A clippy::type_complexity -A dead_code * Remove try-runtime I tried to get this to work for an hour. I have no idea why it doesn't, yet it doesn't. * Rewrite workflow Splits tasks into a more modular structure. Also uses actions-rs/toolchain. * Add a cache * Immediately try building ETH/Monero while this is fixed Adds solc-select use. * Revert selective advance building of ETH/XMR ETH builds now, so it hopefully should work now. Also moves from on push to on push to develop. * Install Monero runtime dependencies Specify missing Rust toolchain setting. * Correct multi-line commands * Fix multi-line commands again Cache Ethereum artifacts. * Add Foundry * Move Clippy under build * Minimal rustup Adds wasm Clippy. Puts Clippy before build. * Use nightly clippy * Remove old clippy call from under build * Have the Monero build script support ARCH specification Requirement for CI. * Add WASM toolchain to tests * Remove Ethereum cache which did not work as needed * Remove extraneous quotes which broke builds on Arch Co-authored-by: Luke Parker <lukeparker5132@gmail.com>
2022-07-22 16:31:29 +00:00
- 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