mirror of
https://github.com/serai-dex/serai.git
synced 2024-11-16 17:07:35 +00:00
Consolidate GitHub CI actions, split out Monero (#71)
* Consolidate GitHub CI actions, split out Monero build now includes the specified Rust toolchain/components. Added a test dependencies action which grabs Foundry and Monero. Split the Monero v14 job into a matrixed job in its own workflow flow. It's now only run when Monero has changes. * Correct Monero unit/integration tests run timing Additionally tests a feature-less Monero build. Also removes a pointless Monero file, which already should have been removed, causing this workflow to be triggered. * Correct exclusion and paths Updates to FROST should re-run the Monero tests to ensure it didn't introduce API incompatibilities.
This commit is contained in:
parent
33c55b8506
commit
534f951165
7 changed files with 106 additions and 47 deletions
17
.github/actions/build-dependencies/action.yml
vendored
17
.github/actions/build-dependencies/action.yml
vendored
|
@ -1,6 +1,17 @@
|
|||
name: build-dependencies
|
||||
description: Installs build dependencies for Serai
|
||||
|
||||
inputs:
|
||||
rust-toolchain:
|
||||
description: "Rust toolchain to install"
|
||||
required: false
|
||||
default: stable
|
||||
|
||||
rust-components:
|
||||
description: "Rust components to install"
|
||||
required: false
|
||||
default:
|
||||
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
|
@ -11,6 +22,12 @@ runs:
|
|||
solc-select install 0.8.9
|
||||
solc-select use 0.8.9
|
||||
|
||||
- name: Install Rust
|
||||
uses: ./.github/actions/cached-rust
|
||||
with:
|
||||
toolchain: ${{ inputs.rust-toolchain }}
|
||||
components: ${{ inputs.rust-components }}
|
||||
|
||||
- name: Install WASM toolchain
|
||||
uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
|
|
2
.github/actions/cached-rust/action.yml
vendored
2
.github/actions/cached-rust/action.yml
vendored
|
@ -15,7 +15,7 @@ inputs:
|
|||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- name: Rust cache
|
||||
- name: Rust Cache
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: |
|
||||
|
|
2
.github/actions/monero/action.yml
vendored
2
.github/actions/monero/action.yml
vendored
|
@ -10,7 +10,7 @@ inputs:
|
|||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- name: Monero daemon cache
|
||||
- name: Monero Daemon Cache
|
||||
id: cache-monerod
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
|
|
24
.github/actions/test-dependencies/action.yml
vendored
Normal file
24
.github/actions/test-dependencies/action.yml
vendored
Normal file
|
@ -0,0 +1,24 @@
|
|||
name: test-dependencies
|
||||
description: Installs test dependencies for Serai
|
||||
|
||||
inputs:
|
||||
monero-version:
|
||||
description: "Monero version to download and run as a regtest node"
|
||||
required: false
|
||||
default: v0.18.0.0
|
||||
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- name: Install Build Dependencies
|
||||
uses: ./.github/actions/build-dependencies
|
||||
|
||||
- name: Install Foundry
|
||||
uses: foundry-rs/foundry-toolchain@v1
|
||||
with:
|
||||
version: nightly
|
||||
|
||||
- name: Run a Monero Regtest Node
|
||||
uses: ./.github/actions/monero
|
||||
with:
|
||||
version: ${{ inputs.monero-version }}
|
57
.github/workflows/monero-tests.yaml
vendored
Normal file
57
.github/workflows/monero-tests.yaml
vendored
Normal file
|
@ -0,0 +1,57 @@
|
|||
name: Monero Tests
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- develop
|
||||
paths:
|
||||
- "coins/monero/**"
|
||||
|
||||
pull_request:
|
||||
paths:
|
||||
- "coins/monero/**"
|
||||
|
||||
jobs:
|
||||
# Only run these once since they will be consistent regardless of any node
|
||||
unit-tests:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: "recursive"
|
||||
|
||||
- name: Test Dependencies
|
||||
uses: ./.github/actions/test-dependencies
|
||||
|
||||
- name: Run Unit Tests Without Features
|
||||
run: cargo test --package monero-serai --lib
|
||||
|
||||
- name: Run Unit Tests
|
||||
run: cargo test --package monero-serai --all-features --lib
|
||||
|
||||
integration-tests:
|
||||
runs-on: ubuntu-latest
|
||||
# Test against all supported protocol versions
|
||||
strategy:
|
||||
matrix:
|
||||
version: [v0.17.3.2, v0.18.0.0]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: "recursive"
|
||||
|
||||
- name: Test Dependencies
|
||||
uses: ./.github/actions/test-dependencies
|
||||
with:
|
||||
monero-version: ${{ matrix.version }}
|
||||
|
||||
- name: Run Integration Tests Without Features
|
||||
run: cargo test --package monero-serai --test '*'
|
||||
|
||||
- name: Run Integration Tests
|
||||
# https://github.com/rust-lang/cargo/issues/8396
|
||||
run: cargo test --package monero-serai --all-features --test '*'
|
||||
|
||||
- name: Run Processor's Monero Tests
|
||||
run: cargo test --package serai-processor monero
|
50
.github/workflows/tests.yml
vendored
50
.github/workflows/tests.yml
vendored
|
@ -16,13 +16,10 @@ jobs:
|
|||
|
||||
- name: Build Dependencies
|
||||
uses: ./.github/actions/build-dependencies
|
||||
|
||||
- name: Install Rust
|
||||
uses: ./.github/actions/cached-rust
|
||||
with:
|
||||
# Clippy requires nightly for some reason
|
||||
toolchain: nightly
|
||||
components: clippy
|
||||
rust-toolchain: nightly
|
||||
rust-components: clippy
|
||||
|
||||
- name: Run Clippy
|
||||
run: cargo clippy --all-features -- -D warnings -A clippy::type_complexity -A dead_code
|
||||
|
@ -34,53 +31,18 @@ jobs:
|
|||
with:
|
||||
submodules: "recursive"
|
||||
|
||||
- name: Build Dependencies
|
||||
uses: ./.github/actions/build-dependencies
|
||||
- name: Test Dependencies
|
||||
uses: ./.github/actions/test-dependencies
|
||||
|
||||
- name: Install Foundry
|
||||
uses: foundry-rs/foundry-toolchain@v1
|
||||
with:
|
||||
version: nightly
|
||||
|
||||
- name: Monero Regtest Daemon
|
||||
uses: ./.github/actions/monero
|
||||
|
||||
- name: Install Rust
|
||||
uses: ./.github/actions/cached-rust
|
||||
|
||||
- name: Run tests
|
||||
- name: Run Tests
|
||||
run: cargo test --all-features
|
||||
|
||||
# Test the Monero code against protocol v14 (node v17) as well
|
||||
test-monero14:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: "recursive"
|
||||
|
||||
- name: Build Dependencies
|
||||
uses: ./.github/actions/build-dependencies
|
||||
|
||||
- name: Monero Regtest Daemon
|
||||
uses: ./.github/actions/monero
|
||||
with:
|
||||
version: v0.17.3.2
|
||||
|
||||
- name: Install Rust
|
||||
uses: ./.github/actions/cached-rust
|
||||
|
||||
- name: Run tests
|
||||
run: |
|
||||
(cd coins/monero && cargo test --all-features)
|
||||
(cd processor && cargo test --all-features monero)
|
||||
|
||||
fmt:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
# Doesn't grab the cache because it doesn't need it
|
||||
# Doesn't grab the cache as it's not needed
|
||||
- name: Install rustfmt
|
||||
uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
|
|
1
coins/monero/.gitignore
vendored
1
coins/monero/.gitignore
vendored
|
@ -1 +0,0 @@
|
|||
c/.build
|
Loading…
Reference in a new issue