-
Notifications
You must be signed in to change notification settings - Fork 0
80 lines (78 loc) · 2.84 KB
/
ci.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
name: CI
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
services:
db:
image: postgres:9.6-alpine
ports: ['5432:5432']
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: test_notification_api
options:
--health-cmd pg_isready
--health-interval 10s
--health-timeout 15s
--health-retries 5
redis:
image: redis
ports: ['6379:6379']
options:
--health-cmd "redis-cli ping"
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: 3.6.12
- name: Build and run tests
env:
NOTIFY_ENVIRONMENT: 'development'
FLASK_APP: 'application.py'
SQLALCHEMY_DATABASE_URI: "postgresql://postgres:postgres@localhost:5432/test_notification_api"
run: |
pip3 install -r requirements_for_test.txt
make generate-version-file
flask db upgrade
make test
deploy_staging:
needs: [test]
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
strategy:
max-parallel: 1
steps:
- uses: actions/checkout@v2
- name: "Deploy staging"
env:
CONVOX_PASSWORD: ${{ secrets.CONVOX_PASSWORD }}
run: |
curl -L https://github.com/convox/convox/releases/latest/download/convox-linux -o /tmp/convox
sudo mv /tmp/convox /usr/local/bin/convox
chmod 755 /usr/local/bin/convox
convox -v
env CONVOX_HOST="console.convox.com" CONVOX_PASSWORD="$CONVOX_PASSWORD" convox deploy --app notifications-api-staging --rack bitzesty/castnotify
env CONVOX_HOST="console.convox.com" CONVOX_PASSWORD="$CONVOX_PASSWORD" convox run api "flask db upgrade" --app notifications-api-staging --rack bitzesty/castnotify
deploy_production:
needs: [test]
if: github.ref == 'refs/heads/production'
runs-on: ubuntu-latest
strategy:
max-parallel: 1
steps:
- uses: actions/checkout@v2
- name: "Deploy production"
env:
CONVOX_PASSWORD: ${{ secrets.CONVOX_PASSWORD }}
run: |
curl -L https://github.com/convox/convox/releases/latest/download/convox-linux -o /tmp/convox
sudo mv /tmp/convox /usr/local/bin/convox
chmod 755 /usr/local/bin/convox
convox -v
env CONVOX_HOST="console.convox.com" CONVOX_PASSWORD="$CONVOX_PASSWORD" convox deploy --app notifications-api-production --rack bitzesty/castnotify
env CONVOX_HOST="console.convox.com" CONVOX_PASSWORD="$CONVOX_PASSWORD" convox run api "flask db upgrade" --app notifications-api-production --rack bitzesty/castnotify