name: Test on: push: branches: [main, develop] pull_request: jobs: test: runs-on: macos-arm64 steps: - name: Checkout uses: actions/checkout@v3 - name: Create necessary directories run: mkdir -p data/users data/cache - name: Setup Rust uses: actions-rust-lang/setup-rust-toolchain@v1 with: toolchain: stable - name: Cache cargo uses: actions/cache@v3 with: path: | ~/.cargo/registry ~/.cargo/git target key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} restore-keys: | ${{ runner.os }}-cargo- - name: Install SwitchAudioSource continue-on-error: true run: brew install switchaudio-source - name: Run tests run: cargo test --all - name: Run clippy run: cargo clippy --all-targets --all-features -- -D warnings - name: Check formatting run: cargo fmt -- --check - name: Clean test databases run: rm -f data/users/test_*.sqlite build: runs-on: macos-arm64 needs: test steps: - name: Checkout uses: actions/checkout@v3 - name: Setup Rust uses: actions-rust-lang/setup-rust-toolchain@v1 with: toolchain: stable - name: Cache cargo uses: actions/cache@v3 with: path: | ~/.cargo/registry ~/.cargo/git target key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - name: Build release run: cargo build --release - name: Upload artifact uses: actions/upload-artifact@v3 with: name: markbase-binary path: target/release/markbase