|
7 | 7 | branches: ["develop"]
|
8 | 8 |
|
9 | 9 | env:
|
10 |
| - MIX_ENV: dev |
| 10 | + MIX_ENV: test |
11 | 11 |
|
12 | 12 | permissions:
|
13 | 13 | contents: read
|
14 | 14 |
|
15 | 15 | jobs:
|
16 | 16 | build:
|
17 | 17 | name: OS ${{matrix.os}} / Elixir ${{matrix.elixir}} / OTP ${{matrix.otp}}
|
| 18 | + services: |
| 19 | + db: |
| 20 | + image: postgres:16 |
| 21 | + ports: ["5432:5432"] |
| 22 | + env: |
| 23 | + POSTGRES_USER: ${{ vars.POSTGRES_USERNAME }} |
| 24 | + POSTGRES_PASSWORD: ${{ secrets.POSTGRES_PASSWORD }} |
| 25 | + options: >- |
| 26 | + --health-cmd pg_isready |
| 27 | + --health-interval 10s |
| 28 | + --health-timeout 5s |
| 29 | + --health-retries 5 |
18 | 30 | strategy:
|
19 | 31 | matrix:
|
20 | 32 | elixir: ['1.14', '1.15', '1.16', '1.17']
|
@@ -48,16 +60,15 @@ jobs:
|
48 | 60 | path: deps
|
49 | 61 | key: ${{ runner.os }}-mix-${{ hashFiles('**/mix.lock') }}
|
50 | 62 | restore-keys: ${{ runner.os }}-mix-
|
51 |
| - - name: Set up Postgres |
52 |
| - run: | |
53 |
| - sudo apt-get update |
54 |
| - sudo apt-get install -y postgresql |
55 |
| - sudo service postgresql start |
56 |
| - sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD 'postgres';" |
57 | 63 | - name: Install dependencies
|
58 | 64 | run: mix deps.get
|
59 |
| - - name: Create database |
60 |
| - run: mix do ecto.create, ecto.migrate |
| 65 | + - name: Reset database and run migrations |
| 66 | + env: |
| 67 | + POSTGRES_USERNAME: ${{ vars.POSTGRES_USERNAME }} |
| 68 | + POSTGRES_PASSWORD: ${{ secrets.POSTGRES_PASSWORD }} |
| 69 | + POSTGRES_HOSTNAME: ${{ vars.POSTGRES_HOSTNAME }} |
| 70 | + SECRET_KEY_BASE: ${{ secrets.SECRET_KEY_BASE }} |
| 71 | + run: mix ecto.drop && mix ecto.create |
61 | 72 | - name: Compile code
|
62 | 73 | run: mix compile --warnings-as-errors
|
63 | 74 | - name: Check Formatting
|
|
67 | 78 | - name: Credo
|
68 | 79 | run: mix credo
|
69 | 80 | - name: Run tests
|
70 |
| - run: MIX_ENV=test mix test |
| 81 | + env: |
| 82 | + POSTGRES_USERNAME: ${{ vars.POSTGRES_USERNAME }} |
| 83 | + POSTGRES_PASSWORD: ${{ secrets.POSTGRES_PASSWORD }} |
| 84 | + POSTGRES_HOSTNAME: ${{ vars.POSTGRES_HOSTNAME }} |
| 85 | + SECRET_KEY_BASE: ${{ secrets.SECRET_KEY_BASE }} |
| 86 | + run: mix test |
0 commit comments