| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 | 
							- name: Backend
 
- on:
 
-   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/
 
 
  |