ci: check and build with features
This commit is contained in:
parent
dfac6e0413
commit
f33eca7eab
14
.github/workflows/build.yaml
vendored
14
.github/workflows/build.yaml
vendored
@ -10,12 +10,17 @@ on:
|
||||
|
||||
jobs:
|
||||
errornowatcher:
|
||||
name: errornowatcher (${{ matrix.os }})
|
||||
name: errornowatcher (${{ matrix.os }}, ${{ matrix.feature.name }})
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ubuntu-24.04, ubuntu-24.04-arm]
|
||||
feature:
|
||||
- name: default
|
||||
|
||||
- name: mimalloc
|
||||
flags: "-F mimalloc"
|
||||
|
||||
steps:
|
||||
- name: Clone repository
|
||||
@ -33,16 +38,15 @@ jobs:
|
||||
~/.cargo/registry/cache/
|
||||
~/.cargo/git/db/
|
||||
target/
|
||||
key: build-${{ matrix.os }}-${{ hashFiles('**.toml', 'Cargo.*') }}
|
||||
key: build-${{ matrix.os }}-${{ matrix.feature.name }}-${{ hashFiles('**.toml', 'Cargo.*') }}
|
||||
|
||||
- name: Switch to nightly toolchain
|
||||
run: rustup default nightly
|
||||
|
||||
- name: Build in release mode
|
||||
run: cargo build --release
|
||||
- run: cargo build --release ${{ matrix.feature.flags }}
|
||||
|
||||
- name: Upload build artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: errornowatcher_${{ matrix.os }}
|
||||
name: errornowatcher_${{ matrix.feature.name }}_${{ matrix.os }}
|
||||
path: target/release/errornowatcher
|
||||
|
21
.github/workflows/lint.yaml
vendored
21
.github/workflows/lint.yaml
vendored
@ -28,9 +28,23 @@ jobs:
|
||||
run: taplo fmt --check Cargo.toml
|
||||
|
||||
rust:
|
||||
name: Rust
|
||||
name: Rust (${{ matrix.feature.name }})
|
||||
runs-on: ubuntu-24.04
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
feature:
|
||||
- name: default
|
||||
|
||||
- name: minimal-mimalloc
|
||||
flags: "--no-default-features -F mimalloc"
|
||||
|
||||
- name: minimal
|
||||
flags: "--no-default-features"
|
||||
|
||||
- name: mimalloc
|
||||
flags: "-F mimalloc"
|
||||
|
||||
steps:
|
||||
- name: Clone repository
|
||||
uses: actions/checkout@v4
|
||||
@ -47,7 +61,7 @@ jobs:
|
||||
~/.cargo/registry/cache/
|
||||
~/.cargo/git/db/
|
||||
target/
|
||||
key: build-${{ matrix.os }}-${{ hashFiles('**.toml', 'Cargo.*') }}
|
||||
key: build-${{ matrix.os }}-${{ matrix.feature.name }}-${{ hashFiles('**.toml', 'Cargo.*') }}
|
||||
|
||||
- name: Switch to nightly toolchain
|
||||
run: rustup default nightly
|
||||
@ -55,8 +69,7 @@ jobs:
|
||||
- name: Install components
|
||||
run: rustup component add clippy rustfmt
|
||||
|
||||
- name: cargo clippy
|
||||
run: cargo clippy -- -D clippy::pedantic
|
||||
- run: cargo clippy ${{ matrix.feature.flags }} -- -D warnings -D clippy::pedantic
|
||||
|
||||
- name: cargo fmt
|
||||
if: always()
|
||||
|
@ -3,7 +3,7 @@ use crate::{
|
||||
commands::CommandSource,
|
||||
http::serve,
|
||||
lua::{client, direction::Direction, player::Player, vec3::Vec3},
|
||||
matrix, particle,
|
||||
particle,
|
||||
replay::recorder::Recorder,
|
||||
};
|
||||
use anyhow::{Context, Result};
|
||||
@ -19,6 +19,9 @@ use ncr::utils::trim_header;
|
||||
use std::{net::SocketAddr, process::exit};
|
||||
use tokio::net::TcpListener;
|
||||
|
||||
#[cfg(feature = "matrix")]
|
||||
use crate::matrix;
|
||||
|
||||
#[allow(clippy::too_many_lines)]
|
||||
pub async fn handle_event(client: Client, event: Event, state: State) -> Result<()> {
|
||||
match event {
|
||||
@ -209,6 +212,8 @@ pub async fn handle_event(client: Client, event: Event, state: State) -> Result<
|
||||
|
||||
let globals = state.lua.globals();
|
||||
lua_init(client, &state, &globals).await?;
|
||||
|
||||
#[cfg(feature = "matrix")]
|
||||
matrix_init(state.clone(), &globals);
|
||||
|
||||
let Some(address): Option<SocketAddr> = globals
|
||||
@ -270,6 +275,7 @@ async fn lua_init(client: Client, state: &State, globals: &Table) -> Result<()>
|
||||
call_listeners(state, "init", || Ok(())).await
|
||||
}
|
||||
|
||||
#[cfg(feature = "matrix")]
|
||||
fn matrix_init(state: State, globals: &Table) {
|
||||
if let Ok(homeserver_url) = globals.get::<String>("MatrixHomeserverUrl")
|
||||
&& let Ok(username) = globals.get::<String>("MatrixUsername")
|
||||
|
@ -4,13 +4,15 @@ pub mod container;
|
||||
pub mod direction;
|
||||
pub mod events;
|
||||
pub mod logging;
|
||||
pub mod matrix;
|
||||
pub mod nochatreports;
|
||||
pub mod player;
|
||||
pub mod system;
|
||||
pub mod thread;
|
||||
pub mod vec3;
|
||||
|
||||
#[cfg(feature = "matrix")]
|
||||
pub mod matrix;
|
||||
|
||||
use crate::{ListenerMap, build_info::built};
|
||||
use mlua::{Lua, Table};
|
||||
use std::io;
|
||||
|
@ -6,10 +6,12 @@ mod commands;
|
||||
mod events;
|
||||
mod http;
|
||||
mod lua;
|
||||
mod matrix;
|
||||
mod particle;
|
||||
mod replay;
|
||||
|
||||
#[cfg(feature = "matrix")]
|
||||
mod matrix;
|
||||
|
||||
use anyhow::Context;
|
||||
use arguments::Arguments;
|
||||
use azalea::{
|
||||
|
Loading…
x
Reference in New Issue
Block a user