- macOS-latest
rust:
- stable
- - beta
- - nightly
runs-on: ${{ matrix.os }}
needs: [compile]
steps:
- name: Setup | Rust
uses: ATiltedTree/setup-rust@v1
with:
- rust-version: ${{ matrix.rust }}
+ rust-version: stable
+ - uses: actions/setup-go@v3
+ with:
+ go-version: '1.16.1' # The Go version to download (if necessary) and use.
- name: Build | Compile
- run: cargo test
+ run: cargo build --release
+ - name: Build | All in one
+ run:
+ - cd exes/all
+ - make build
+ shell: bash
+ - name: Finish | Prepare artifacts
+ run:
+ - mkdir -p artifacts
+ - cp target/release/{cache,gateway,webhook,ratelimit} ./artifacts
+ - cp exes/all/build/all ./artifacts
+ shell: bash
+ - name: Finish | Archive build results
+ uses: actions/upload-artifact@v3
+ with:
+ name: artifacts
+ path: artifacts/*
\ No newline at end of file
use serde::de::DeserializeOwned;
use shared::{
config::Settings,
- log::{error, info},
};
use std::{future::Future, pin::Pin};
use tokio::{signal::unix::SignalKind, sync::oneshot};
tokio::spawn(async move {});
tokio::spawn(async move {
- match tokio::signal::unix::signal(SignalKind::terminate())
+ #[cfg(unix)]
+ tokio::signal::unix::signal(SignalKind::terminate())
.unwrap()
.recv()
- .await
- {
- Some(()) => {
- info!("Stopping program.");
-
- stop.send(()).unwrap();
- }
- None => {
- error!("Unable to listen for shutdown signal");
- // we also shut down in case of error
- }
- }
+ .await;
+ #[cfg(not(unix))]
+ tokio::signal::ctrl_c().await;
+
+ stop.send(()).unwrap();
});
self.start(settings?, stop_channel).await
})