diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b7761b4..c26966d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -20,24 +20,20 @@ jobs: - uses: dtolnay/rust-toolchain@master with: toolchain: ${{ matrix.rust }} + components: clippy, rustfmt - name: Run tests run: cargo test --verbose - name: Run clippy run: cargo clippy -- -D warnings - name: Check formatting run: cargo fmt -- --check - - coverage: - name: Code Coverage - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@master - - name: Install cargo-tarpaulin - run: cargo install cargo-tarpaulin - - name: Run coverage - run: cargo tarpaulin --out Xml --output-dir coverage + - name: Code coverage + if: matrix.os == 'ubuntu-latest' && matrix.rust == 'stable' + run: | + cargo install cargo-tarpaulin + cargo tarpaulin --out Xml --output-dir coverage - name: Upload to codecov + if: matrix.os == 'ubuntu-latest' && matrix.rust == 'stable' uses: codecov/codecov-action@v4 with: files: ./coverage/cobertura.xml @@ -52,20 +48,15 @@ jobs: os: [ubuntu-latest, macos-latest, windows-latest] steps: - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@master + - uses: dtolnay/rust-toolchain@stable - name: Build release run: cargo build --release --verbose - - publish-check: - name: Publish Check - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@master - name: Check package + if: matrix.os == 'ubuntu-latest' run: cargo package --allow-dirty - name: Check publish - run: cargo publish --dry-run + if: matrix.os == 'ubuntu-latest' + run: cargo publish --dry-run --allow-dirty release: name: Release @@ -93,9 +84,8 @@ jobs: asset_name: rpg-windows-x86_64.exe steps: - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@master + - uses: dtolnay/rust-toolchain@stable with: - toolchain: stable targets: ${{ matrix.target }} - name: Build release binary run: cargo build --release --target ${{ matrix.target }} diff --git a/tests/integration_test.rs b/tests/integration_test.rs index 7cc4775..08f2c0e 100644 --- a/tests/integration_test.rs +++ b/tests/integration_test.rs @@ -2,7 +2,7 @@ use std::process::Command; #[test] fn test_basic_generation() { - let output = Command::new("./target/release/rpg") + let output = Command::new(env!("CARGO_BIN_EXE_rpg")) .args(&["3", "--quiet"]) .output() .expect("Failed to execute command"); @@ -21,7 +21,7 @@ fn test_basic_generation() { #[test] fn test_length_option() { - let output = Command::new("./target/release/rpg") + let output = Command::new(env!("CARGO_BIN_EXE_rpg")) .args(&["1", "--length", "20", "--quiet"]) .output() .expect("Failed to execute command"); @@ -55,12 +55,12 @@ fn test_length_option() { #[test] fn test_seed_reproducibility() { - let output1 = Command::new("./target/release/rpg") + let output1 = Command::new(env!("CARGO_BIN_EXE_rpg")) .args(&["1", "--seed", "12345", "--quiet"]) .output() .expect("Failed to execute command"); - let output2 = Command::new("./target/release/rpg") + let output2 = Command::new(env!("CARGO_BIN_EXE_rpg")) .args(&["1", "--seed", "12345", "--quiet"]) .output() .expect("Failed to execute command");