name: Test on: push: branches: [ main ] pull_request: branches: [ main ] env: CARGO_TERM_COLOR: always jobs: test: runs-on: ubuntu-latest services: postgres: image: postgres:15 env: POSTGRES_USER: readur POSTGRES_PASSWORD: readur_password POSTGRES_DB: readur_test options: >- --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 ports: - 5432:5432 steps: - uses: actions/checkout@v3 - name: Install system dependencies run: | sudo apt-get update sudo apt-get install -y tesseract-ocr tesseract-ocr-eng libtesseract-dev libleptonica-dev pkg-config - name: Cache Rust dependencies uses: actions/cache@v3 with: path: | ~/.cargo/registry ~/.cargo/git target key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - name: Install Rust uses: actions-rs/toolchain@v1 with: toolchain: stable override: true - name: Run tests run: cargo test env: TEST_DATABASE_URL: postgresql://readur:readur_password@localhost:5432/readur_test - name: Run frontend tests working-directory: ./frontend run: | npm ci npm test