name: CI on: push: branches: [master] pull_request: branches: [master] env: CARGO_TERM_COLOR: always jobs: build-javascript: name: Build JavaScript runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 with: node-version: 16 - run: npm ci - run: npx tsc --noEmit - run: npx vite build test: name: Test runs-on: ubuntu-latest services: postgres: image: postgres:14 env: POSTGRES_PASSWORD: postgres options: >- --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 ports: - 5432:5432 strategy: matrix: toolchain: - "1.60" - stable - beta - nightly steps: - uses: actions/checkout@v3 - run: rustup update ${{ matrix.toolchain }} - run: rustup default ${{ matrix.toolchain }} - uses: Swatinem/rust-cache@v2 - run: cargo build --verbose - run: cargo test --features database_tests --verbose env: ROCKET_DATABASES: '{ main = { url = "postgresql://postgres:postgres@localhost" } }' eslint: name: ESLint runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 with: node-version: 16 - run: npm ci - run: npx eslint . prettier: name: Prettier runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 with: node-version: 16 - run: npm ci - run: npx prettier --check . vitest: name: Vitest runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 with: node-version: 16 - run: npm ci - run: npx vitest run rustfmt: name: Rustfmt runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - run: cargo fmt --all --check codeql: name: CodeQL runs-on: ubuntu-latest permissions: security-events: write steps: - uses: actions/checkout@v3 - uses: github/codeql-action/init@v2 with: languages: javascript queries: +security-and-quality - uses: github/codeql-action/analyze@v2