aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/ci.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/ci.yml')
-rw-r--r--.github/workflows/ci.yml56
1 files changed, 56 insertions, 0 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..2267a00
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,56 @@
+name: CI
+
+on:
+ push:
+ branches: [ main, master ]
+ pull_request:
+ branches: [ main, master ]
+
+env:
+ CARGO_TERM_COLOR: always
+
+jobs:
+ test:
+ name: Test
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Install Rust
+ uses: dtolnay/rust-toolchain@stable
+
+ - name: Check formatting
+ run: cargo fmt -- --check
+
+ - name: Run clippy
+ run: cargo clippy -- -D warnings
+
+ - name: Run tests
+ run: cargo test --verbose
+
+ - name: Build
+ run: cargo build --verbose
+
+ build-check:
+ name: Build Check (${{ matrix.os }})
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ os: [ubuntu-latest, windows-latest, macos-latest]
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Install Rust
+ uses: dtolnay/rust-toolchain@stable
+
+ - name: Build
+ run: cargo build --release
+
+ - name: Test run
+ shell: bash
+ run: |
+ if [[ "${{ matrix.os }}" == "windows-latest" ]]; then
+ ./target/release/mikusays.exe "CI Test on ${{ matrix.os }}"
+ else
+ ./target/release/mikusays "CI Test on ${{ matrix.os }}"
+ fi