mirror of
https://github.com/jugeeya/UltimateTrainingModpack.git
synced 2024-11-24 10:54:16 +00:00
[Github Action] no-dkp image; Move to cargo clippy as simple runner to fix PRs (#462)
* Update rust.yml * Update rust.yml * Update rust.yml * Update rust.yml * Update rust.yml * Update rust.yml * Fixes for clippy * Fix clippy again * Also run check * Add names * Remove rustfmt
This commit is contained in:
parent
6d312521d1
commit
5bb12d04fb
3 changed files with 18 additions and 78 deletions
49
.github/workflows/rust.yml
vendored
49
.github/workflows/rust.yml
vendored
|
@ -8,13 +8,11 @@ on:
|
|||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
clippy_pr:
|
||||
checker:
|
||||
name: Check, Clippy
|
||||
runs-on: ubuntu-latest
|
||||
container: jugeeya/cargo-skyline:3.2.0
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Setup PATH
|
||||
run: export PATH=$PATH:/root/.cargo/bin:/opt/devkitpro/devkitA64/bin
|
||||
- name: Install minimal nightly rust
|
||||
uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
|
@ -23,39 +21,20 @@ jobs:
|
|||
components: rustfmt, clippy
|
||||
default: true
|
||||
target: x86_64-unknown-linux-gnu
|
||||
- uses: actions-rs/clippy-check@v1
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
toolchain: nightly
|
||||
args: --all-features --target=x86_64-unknown-linux-gnu
|
||||
- uses: mbrobbel/rustfmt-check@master
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: Check
|
||||
run: cargo +nightly check --target=x86_64-unknown-linux-gnu
|
||||
- name: Clippy
|
||||
run: cargo +nightly clippy --all-targets --all-features --target=x86_64-unknown-linux-gnu
|
||||
plugin:
|
||||
name: Plugin NRO
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
changelog: ${{ steps.build_release.outputs.changelog }}
|
||||
container:
|
||||
image: jugeeya/cargo-skyline:3.2.0
|
||||
image: jugeeya/cargo-skyline:3.2.0-no-dkp
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Build release NRO
|
||||
id: build_release
|
||||
run: |
|
||||
# # Grab changelog for beta description later
|
||||
# # Grab latest tag, grab log vs. main, replace newlines with two newlines and a list marker
|
||||
# changelog="- $(git log --pretty=format:%s `git tag --sort=-committerdate | head -1`...main | sed -z 's/\n/\n\n- /g')"
|
||||
# # GH actions hate multiline strings. https://trstringer.com/github-actions-multiline-strings/
|
||||
# changelog="${changelog//'%'/'%25'}"
|
||||
# changelog="${changelog//$'\n'/'%0A'}"
|
||||
# changelog="${changelog//$'\r'/'%0D'}"
|
||||
# echo "changelog<<EOF" >> $GITHUB_ENV
|
||||
# echo "$changelog" >> $GITHUB_ENV
|
||||
# echo "EOF" >> $GITHUB_ENV
|
||||
# echo "::set-output name=changelog::$changelog"
|
||||
|
||||
# Actually build plugin
|
||||
PATH=$PATH:/root/.cargo/bin:/opt/devkitpro/devkitA64/bin /root/.cargo/bin/cargo-skyline skyline build --release
|
||||
run: cargo-skyline skyline build --release
|
||||
env:
|
||||
HOME: /root
|
||||
- name: Upload plugin artifact
|
||||
|
@ -69,15 +48,16 @@ jobs:
|
|||
name: static
|
||||
path: src/static
|
||||
plugin_outside_training_mode:
|
||||
name: Plugin NRO (Outside Training Mode)
|
||||
if: github.ref == 'refs/heads/main'
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: jugeeya/cargo-skyline:3.2.0
|
||||
image: jugeeya/cargo-skyline:3.2.0-no-dkp
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Build outside_training_mode NRO
|
||||
run: |
|
||||
PATH=$PATH:/root/.cargo/bin:/opt/devkitpro/devkitA64/bin /root/.cargo/bin/cargo-skyline skyline build --release --features outside_training_mode
|
||||
cargo-skyline skyline build --release --features outside_training_mode
|
||||
env:
|
||||
HOME: /root
|
||||
- name: Upload plugin (outside training mode) artifact
|
||||
|
@ -86,6 +66,7 @@ jobs:
|
|||
name: plugin_outside_training_mode
|
||||
path: target/aarch64-skyline-switch/release/libtraining_modpack.nro
|
||||
upload:
|
||||
name: Upload Beta Release
|
||||
runs-on: ubuntu-latest
|
||||
if: github.ref == 'refs/heads/main'
|
||||
needs:
|
||||
|
@ -135,10 +116,6 @@ jobs:
|
|||
body: >
|
||||
Beta built off of the latest code in the repository.
|
||||
|
||||
## Changelog
|
||||
|
||||
${{needs.plugin.outputs.changelog}}
|
||||
|
||||
|
||||
## Installation
|
||||
|
||||
|
|
14
src/lib.rs
14
src/lib.rs
|
@ -22,8 +22,6 @@ mod hitbox_visualizer;
|
|||
mod training;
|
||||
|
||||
mod logging;
|
||||
#[cfg(test)]
|
||||
mod test;
|
||||
|
||||
use crate::common::*;
|
||||
use crate::events::{Event, EVENT_QUEUE};
|
||||
|
@ -99,7 +97,7 @@ pub fn main() {
|
|||
let ovl_path = "sd:/switch/.overlays/ovlTrainingModpack.ovl";
|
||||
if fs::metadata(ovl_path).is_ok() {
|
||||
warn!("Removing ovlTrainingModpack.ovl...");
|
||||
fs::remove_file(ovl_path).expect(&format!("Could not remove {}", ovl_path));
|
||||
fs::remove_file(ovl_path).unwrap_or_else(|_| panic!("Could not remove {}", ovl_path))
|
||||
}
|
||||
|
||||
info!("Performing version check...");
|
||||
|
@ -109,7 +107,7 @@ pub fn main() {
|
|||
info!("Checking for previous menu in training_modpack_menu.json...");
|
||||
if fs::metadata(menu_conf_path).is_ok() {
|
||||
let menu_conf = fs::read_to_string(menu_conf_path)
|
||||
.expect(&format!("Could not remove {}", menu_conf_path));
|
||||
.unwrap_or_else(|_| panic!("Could not remove {}", menu_conf_path));
|
||||
if let Ok(menu_conf_json) = serde_json::from_str::<MenuJsonStruct>(&menu_conf) {
|
||||
unsafe {
|
||||
MENU = menu_conf_json.menu;
|
||||
|
@ -118,10 +116,8 @@ pub fn main() {
|
|||
}
|
||||
} else {
|
||||
warn!("Previous menu found but is invalid. Deleting...");
|
||||
fs::remove_file(menu_conf_path).expect(&format!(
|
||||
"{} has invalid schema but could not be deleted!",
|
||||
menu_conf_path
|
||||
));
|
||||
fs::remove_file(menu_conf_path)
|
||||
.unwrap_or_else(|_| panic!("{} has invalid schema but could not be deleted!", menu_conf_path));
|
||||
}
|
||||
} else {
|
||||
info!("No previous menu file found.");
|
||||
|
@ -132,7 +128,7 @@ pub fn main() {
|
|||
if fs::metadata(combo_path).is_ok() {
|
||||
info!("Previous button combo settings found. Loading...");
|
||||
let combo_conf =
|
||||
fs::read_to_string(combo_path).expect(&format!("Could not read {}", combo_path));
|
||||
fs::read_to_string(combo_path).unwrap_or_else(|_| panic!("Could not remove {}", combo_path));
|
||||
if button_config::validate_config(&combo_conf) {
|
||||
button_config::save_all_btn_config_from_toml(&combo_conf);
|
||||
} else {
|
||||
|
|
33
src/test.rs
33
src/test.rs
|
@ -1,33 +0,0 @@
|
|||
/// Recommended to run with the following command:
|
||||
/// `RUSTFLAGS=-Awarnings cargo test --target=x86_64-unknown-linux-gnu`
|
||||
/// But you can replace the target with your PC's target.
|
||||
|
||||
/// This will run and render the default menu in your default HTML opening program, ideally Chrome.
|
||||
#[test]
|
||||
fn write_menu() {
|
||||
unsafe {
|
||||
use crate::common::menu::write_menu;
|
||||
use std::process::Command;
|
||||
|
||||
let folder_path = "../training_modpack.htdocs";
|
||||
let path = "../training_modpack.htdocs/training_menu.html";
|
||||
|
||||
assert!(
|
||||
std::path::Path::new(folder_path).exists(),
|
||||
"Needs required folder: ../training_modpack.htdocs!"
|
||||
);
|
||||
|
||||
std::fs::write(path, write_menu()).unwrap();
|
||||
|
||||
let (cmd, args) = if wsl::is_wsl() || cfg!(target_os = "windows") {
|
||||
("cmd.exe", ["/C", "start", path])
|
||||
} else {
|
||||
("sh", ["-c", "open", path])
|
||||
};
|
||||
|
||||
Command::new(cmd)
|
||||
.args(&args)
|
||||
.output()
|
||||
.expect("failed to open rendered HTML file");
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue