mirror of
https://github.com/serai-dex/serai.git
synced 2025-12-08 12:19:24 +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:
17
.github/actions/build-dependencies/action.yml
vendored
17
.github/actions/build-dependencies/action.yml
vendored
@@ -1,6 +1,17 @@
|
|||||||
name: build-dependencies
|
name: build-dependencies
|
||||||
description: Installs build dependencies for Serai
|
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:
|
runs:
|
||||||
using: "composite"
|
using: "composite"
|
||||||
steps:
|
steps:
|
||||||
@@ -11,6 +22,12 @@ runs:
|
|||||||
solc-select install 0.8.9
|
solc-select install 0.8.9
|
||||||
solc-select use 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
|
- name: Install WASM toolchain
|
||||||
uses: actions-rs/toolchain@v1
|
uses: actions-rs/toolchain@v1
|
||||||
with:
|
with:
|
||||||
|
|||||||
2
.github/actions/cached-rust/action.yml
vendored
2
.github/actions/cached-rust/action.yml
vendored
@@ -15,7 +15,7 @@ inputs:
|
|||||||
runs:
|
runs:
|
||||||
using: "composite"
|
using: "composite"
|
||||||
steps:
|
steps:
|
||||||
- name: Rust cache
|
- name: Rust Cache
|
||||||
uses: actions/cache@v3
|
uses: actions/cache@v3
|
||||||
with:
|
with:
|
||||||
path: |
|
path: |
|
||||||
|
|||||||
2
.github/actions/monero/action.yml
vendored
2
.github/actions/monero/action.yml
vendored
@@ -10,7 +10,7 @@ inputs:
|
|||||||
runs:
|
runs:
|
||||||
using: "composite"
|
using: "composite"
|
||||||
steps:
|
steps:
|
||||||
- name: Monero daemon cache
|
- name: Monero Daemon Cache
|
||||||
id: cache-monerod
|
id: cache-monerod
|
||||||
uses: actions/cache@v3
|
uses: actions/cache@v3
|
||||||
with:
|
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
|
- name: Build Dependencies
|
||||||
uses: ./.github/actions/build-dependencies
|
uses: ./.github/actions/build-dependencies
|
||||||
|
|
||||||
- name: Install Rust
|
|
||||||
uses: ./.github/actions/cached-rust
|
|
||||||
with:
|
with:
|
||||||
# Clippy requires nightly for some reason
|
# Clippy requires nightly for some reason
|
||||||
toolchain: nightly
|
rust-toolchain: nightly
|
||||||
components: clippy
|
rust-components: clippy
|
||||||
|
|
||||||
- name: Run Clippy
|
- name: Run Clippy
|
||||||
run: cargo clippy --all-features -- -D warnings -A clippy::type_complexity -A dead_code
|
run: cargo clippy --all-features -- -D warnings -A clippy::type_complexity -A dead_code
|
||||||
@@ -34,53 +31,18 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
submodules: "recursive"
|
submodules: "recursive"
|
||||||
|
|
||||||
- name: Build Dependencies
|
- name: Test Dependencies
|
||||||
uses: ./.github/actions/build-dependencies
|
uses: ./.github/actions/test-dependencies
|
||||||
|
|
||||||
- name: Install Foundry
|
- name: Run Tests
|
||||||
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
|
|
||||||
run: cargo test --all-features
|
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:
|
fmt:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- 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
|
- name: Install rustfmt
|
||||||
uses: actions-rs/toolchain@v1
|
uses: actions-rs/toolchain@v1
|
||||||
with:
|
with:
|
||||||
|
|||||||
1
coins/monero/.gitignore
vendored
1
coins/monero/.gitignore
vendored
@@ -1 +0,0 @@
|
|||||||
c/.build
|
|
||||||
Reference in New Issue
Block a user