-
Notifications
You must be signed in to change notification settings - Fork 17
131 lines (116 loc) · 3.23 KB
/
test.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
name: test
on:
push:
branches: ["main","develop"]
env:
CARGO_TERM_COLOR: always
RUST_LOG: info
jobs:
test:
name: Cargo test
runs-on: ubuntu-latest
services:
postgres:
image: postgres:latest
env:
POSTGRES_USER: postgres_user
POSTGRES_PASSWORD: postgres_pass
POSTGRES_DB: postgres_db
ports:
- 5432:5432
redis:
image: redis:latest
ports:
- 6379:6379
mailhog:
image: mailhog/mailhog:latest
ports:
- 1025:1025
- 8025:8025
mockserver:
image: mockserver/mockserver:latest
env:
MOCKSERVER_LOG_LEVEL: DEBUG
SERVER_PORT: 8026
ports:
- 8026:8026
env:
APP_PROFILE: test
SQLX_VERSION: 0.6.3
SQLX_FEATURES: postgres
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Cache dependencies
id: cache-dependencies
uses: actions/cache@v3
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: ${{ runner.os }}-cargo-
- 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=native-tls,${{ env.SQLX_FEATURES }}
--no-default-features
--locked
- name: Migrate database
run: |
sudo apt-get install libpq-dev -y
./scripts/init_postgres.sh
- name: Check sqlx-data.json is up-to-date
run: |
cargo sqlx prepare --check --merged
- name: Add mockserver expections
run: |
./scripts/init_mockserver.sh
- name: Run cargo test
uses: actions-rs/cargo@v1
with:
command: test
# - name: Test Success
# uses: rjstone/discord-webhook-notify@v1
# if: success()
# with:
# severity: info
# details: Test Succeeded!
# webhookUrl: ${{ secrets.DISCORD_WEBHOOK }}
# - name: Test Failure
# uses: rjstone/discord-webhook-notify@v1
# if: failure()
# with:
# severity: error
# details: Test Failed!
# webhookUrl: ${{ secrets.DISCORD_WEBHOOK }}
# - name: Test Cancelled
# uses: rjstone/discord-webhook-notify@v1
# if: cancelled()
# with:
# severity: warn
# details: Test Cancelled!
# webhookUrl: ${{ secrets.DISCORD_WEBHOOK }}