Merge pull request #476 from hannobraun/validator

Add initial version of validator
This commit is contained in:
Hanno Braun 2022-04-13 17:14:10 +02:00 committed by GitHub
commit 63a7518c29
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 68 additions and 33 deletions

View File

@ -42,6 +42,26 @@ jobs:
command: fmt
args: --all -- --check
clippy:
name: Clippy Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Toolchain
uses: oxidecomputer/actions-rs_toolchain@oxide/master
# see https://github.com/actions-rs/toolchain/pull/209
# uses: actions-rs/toolchain@v1
with:
override: true
profile: minimal
target: ${{ matrix.target }}
- run: rustup component add clippy
- uses: Swatinem/rust-cache@1232abb8968faf344409165de17cbf9e7f340fd8
- uses: actions-rs/clippy-check@9d09632661e31982c0be8af59aeb96b680641bc4
with:
token: ${{ secrets.GITHUB_TOKEN }}
args: --all-features
test:
name: Test
strategy:
@ -71,36 +91,4 @@ jobs:
- uses: actions-rs/cargo@4ff6ec2846f6e7217c1a9b0b503506665f134c4b
with:
command: run
args: -- --model cuboid --export cuboid.3mf
- uses: actions-rs/cargo@4ff6ec2846f6e7217c1a9b0b503506665f134c4b
with:
command: run
args: -- --model group --export group.3mf
- uses: actions-rs/cargo@4ff6ec2846f6e7217c1a9b0b503506665f134c4b
with:
command: run
args: -- --model spacer --export spacer.3mf
- uses: actions-rs/cargo@4ff6ec2846f6e7217c1a9b0b503506665f134c4b
with:
command: run
args: -- --model star --export star.3mf
clippy:
name: Clippy Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Toolchain
uses: oxidecomputer/actions-rs_toolchain@oxide/master
# see https://github.com/actions-rs/toolchain/pull/209
# uses: actions-rs/toolchain@v1
with:
override: true
profile: minimal
target: ${{ matrix.target }}
- run: rustup component add clippy
- uses: Swatinem/rust-cache@1232abb8968faf344409165de17cbf9e7f340fd8
- uses: actions-rs/clippy-check@9d09632661e31982c0be8af59aeb96b680641bc4
with:
token: ${{ secrets.GITHUB_TOKEN }}
args: --all-features
args: --package validator

7
Cargo.lock generated
View File

@ -2789,6 +2789,13 @@ dependencies = [
"percent-encoding",
]
[[package]]
name = "validator"
version = "0.1.0"
dependencies = [
"anyhow",
]
[[package]]
name = "valuable"
version = "0.1.0"

View File

@ -17,6 +17,7 @@ members = [
"models/star",
"tools/release-operator",
"tools/validator",
]
default-members = [
"crates/fj-app",

View File

@ -2,6 +2,7 @@
name = "release-operator"
version = "0.3.1"
edition = "2021"
publish = false
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

View File

@ -0,0 +1,8 @@
[package]
name = "validator"
version = "0.1.0"
edition = "2021"
publish = false
[dependencies]
anyhow = "1.0.56"

View File

@ -0,0 +1,3 @@
# Validator
Used by the CI build to export (and in the future, validate) 3MF files.

View File

@ -0,0 +1,27 @@
use std::{fs, process::Command};
use anyhow::{anyhow, bail};
fn main() -> anyhow::Result<()> {
for model in fs::read_dir("models")? {
let model = model?;
let model = model.file_name().into_string().map_err(|err| {
anyhow!("Failed to convert directory name to `String`: {:?}", err)
})?;
let export_file = format!("{model}.3mf");
let exit_status = Command::new("cargo")
.arg("run")
.arg("--")
.args(["--model", &model])
.args(["--export", &export_file])
.status()?;
if !exit_status.success() {
bail!("Exporting model failed with error status: {}", exit_status);
}
}
Ok(())
}