diff --git a/.gitea/workflows/rust.yml b/.gitea/workflows/rust.yml new file mode 100644 index 0000000..5893c1b --- /dev/null +++ b/.gitea/workflows/rust.yml @@ -0,0 +1,59 @@ +name: Rust lint and build + +on: [push, pull_request] + +jobs: + ci: + name: ${{ matrix.component }} + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + include: + - component: CLI + dir: . + - component: Server + dir: server + defaults: + run: + working-directory: ${{ matrix.dir }} + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Configure Cargo Cache + uses: actions/cache@v5 + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} + restore-keys: | + ${{ runner.os }}-cargo- + + - name: Install Rust + uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + components: rustfmt, clippy + + - name: Rustfmt + run: cargo fmt --all -- --check + + - name: Check + run: cargo check + + - name: Clippy + run: cargo clippy -- -D warnings + + - name: Test + run: cargo test + + - name: Build + run: cargo build + + diff --git a/.gitignore b/.gitignore index d787b70..537ac0b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /target /result +*.swp