backend_general.yml 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. name: Backend
  2. on:
  3. push:
  4. branches: [ main ]
  5. pull_request:
  6. branches: [ main ]
  7. jobs:
  8. test:
  9. name: Test
  10. runs-on: ubuntu-latest
  11. services:
  12. postgres:
  13. image: postgres:12
  14. env:
  15. POSTGRES_USER: postgres
  16. POSTGRES_PASSWORD: password
  17. POSTGRES_DB: postgres
  18. ports:
  19. - 5433:5432
  20. env:
  21. SQLX_VERSION: 0.5.7
  22. SQLX_FEATURES: postgres
  23. steps:
  24. - name: Checkout repository
  25. uses: actions/checkout@v2
  26. - name: Cache dependencies
  27. id: cache-dependencies
  28. uses: actions/cache@v2
  29. with:
  30. path: |
  31. ~/.cargo/registry
  32. ~/.cargo/git
  33. target
  34. key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
  35. - name: Install stable toolchain
  36. uses: actions-rs/toolchain@v1
  37. with:
  38. profile: minimal
  39. toolchain: stable
  40. override: true
  41. - name: Cache sqlx-cli
  42. uses: actions/cache@v2
  43. id: cache-sqlx
  44. with:
  45. path: |
  46. ~/.cargo/bin/sqlx
  47. ~/.cargo/bin/cargo-sqlx
  48. key: ${{ runner.os }}-sqlx-${{ env.SQLX_VERSION }}-${{ env.SQLX_FEATURES }}
  49. - name: Install sqlx-cli
  50. uses: actions-rs/cargo@v1
  51. if: steps.cache-sqlx.outputs.cache-hit == false
  52. with:
  53. command: install
  54. args: >
  55. sqlx-cli
  56. --force
  57. --version=${{ env.SQLX_VERSION }}
  58. --features=${{ env.SQLX_FEATURES }}
  59. --no-default-features
  60. --locked
  61. - name: Migrate database
  62. working-directory: backend/
  63. run: |
  64. sudo apt-get install libpq-dev -y
  65. SKIP_DOCKER=true ./scripts/init_database.sh
  66. - name: Check sqlx-data.json is up-to-date
  67. working-directory: backend/
  68. run: |
  69. cargo sqlx prepare --check -- --bin backend
  70. - name: Run cargo test
  71. working-directory: backend/
  72. run: cargo test