name: Check on: push: branches: ["master"] pull_request: branches: ["master"] env: CARGO_TERM_COLOR: always RUSTFLAGS: "-Dwarnings" jobs: build: runs-on: self-hosted steps: - uses: actions/checkout@v4 - name: Setup run: | rustup install nightly rustup default nightly rustup component add clippy rustfmt cargo install sqlx-cli cd backend sqlx database create --database-url sqlite://db.sqlite3 sqlx migrate run --source sync_server/src/database/migrations --database-url sqlite://db.sqlite3 - name: Build wasm run: | cd backend cargo install wasm-pack wasm-pack build --target web sync_lib - name: Lint backend run: | cd backend cargo clippy --all-targets --all-features cargo fmt --all -- --check - name: Test backend run: | cd backend cargo test --verbose cd sync_lib # wasm-pack test --node # todo: fix this is CI - name: Lint frontend run: | cd plugin npm ci npm run lint if [[ $(git status --porcelain) ]]; then git status --porcelain echo "Failing CI because the working directory is not clean after linting." exit 1 fi - name: Test frontend run: | cd plugin npm ci npm run test