| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 | name: Backendon:  push:    branches: [ main ]  pull_request:    branches: [ main ]jobs:  test:    name: Test    runs-on: ubuntu-latest    services:      postgres:        image: postgres:12        env:          POSTGRES_USER: postgres          POSTGRES_PASSWORD: password          POSTGRES_DB: postgres        ports:          - 5433:5432    env:      SQLX_VERSION: 0.5.7      SQLX_FEATURES: postgres    steps:      - name: Checkout repository        uses: actions/checkout@v2      - name: Cache dependencies        id: cache-dependencies        uses: actions/cache@v2        with:          path: |            ~/.cargo/registry            ~/.cargo/git            target          key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}      - name: Install stable toolchain        uses: actions-rs/toolchain@v1        with:          profile: minimal          toolchain: stable          override: true      - name: Cache sqlx-cli        uses: actions/cache@v2        id: cache-sqlx        with:          path: |            ~/.cargo/bin/sqlx            ~/.cargo/bin/cargo-sqlx          key: ${{ runner.os }}-sqlx-${{ env.SQLX_VERSION }}-${{ env.SQLX_FEATURES }}      - name: Install sqlx-cli        uses: actions-rs/cargo@v1        if: steps.cache-sqlx.outputs.cache-hit == false        with:          command: install          args: >            sqlx-cli            --force            --version=${{ env.SQLX_VERSION }}            --features=${{ env.SQLX_FEATURES }}            --no-default-features            --locked      - name: Migrate database        working-directory: backend/        run: |          sudo apt-get install libpq-dev -y          SKIP_DOCKER=true POSTGRES_PORT=5433 ./scripts/init_database.sh      - name: Check sqlx-data.json is up-to-date        working-directory: backend/        run: |          cargo sqlx prepare --check -- --bin backend      - name: Run cargo test        working-directory: backend/        run: cargo test          fmt:    name: Rustfmt    runs-on: ubuntu-latest    steps:      - uses: actions/checkout@v2      - uses: actions-rs/toolchain@v1        with:          toolchain: stable          override: true      - run: rustup component add rustfmt        working-directory: backend/      - run: cargo fmt --all -- --check        working-directory: backend/                  clippy:    name: Clippy    runs-on: ubuntu-latest    services:      postgres:        image: postgres:12        env:          POSTGRES_USER: postgres          POSTGRES_PASSWORD: password          POSTGRES_DB: postgres        ports:          - 5433:5432    env:      SQLX_VERSION: 0.5.7      SQLX_FEATURES: postgres    steps:      - name: Checkout repository        uses: actions/checkout@v2      - name: Install stable toolchain        uses: actions-rs/toolchain@v1        with:          toolchain: stable          components: clippy          override: true      - name: Cache sqlx-cli        uses: actions/cache@v2        id: cache-sqlx        with:          path: |            ~/.cargo/bin/sqlx          key: ${{ runner.os }}-sqlx-${{ env.SQLX_VERSION }}-${{ env.SQLX_FEATURES }}      - name: Install sqlx-cli         uses: actions-rs/cargo@v1        if: steps.cache-sqlx.outputs.cache-hit == false        with:          command: install           args: >            sqlx-cli            --force            --version=${{ env.SQLX_VERSION }}            --features=${{ env.SQLX_FEATURES }}            --no-default-features            --locked      - name: Migrate database        working-directory: backend/        run: |          sudo apt-get install libpq-dev -y          SKIP_DOCKER=true POSTGRES_PORT=5433 ./scripts/init_database.sh                - run: rustup component add clippy        working-directory: backend/      - run: cargo clippy -- -D warnings        working-directory: backend/
 |