-
Notifications
You must be signed in to change notification settings - Fork 108
132 lines (110 loc) · 4.06 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
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
131
132
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
api-test:
runs-on: ubuntu-latest
services:
redis:
image: redis
# Set health checks to wait until redis has started
options: >-
--health-cmd "redis-cli ping"
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 6379:6379
postgres:
image: postgres:12.3-alpine
env:
POSTGRES_USER: passport_scorer
POSTGRES_PASSWORD: passport_scorer_pwd
POSTGRES_DB: passport_scorer
ports:
- 5432:5432
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: "3.12"
- name: Install poetry
run: |
pip3 install pipx
pipx ensurepath
pipx install poetry
pipx inject poetry poetry-plugin-export
- name: Generate requirements.txt
working-directory: ./api
run: poetry export -f requirements.txt -o requirements.txt --with dev,server
- name: Install API dependencies
working-directory: ./api
run: pip3 install -r requirements.txt
- name: Django Check
working-directory: ./api
env:
CERAMIC_CACHE_SCORER_ID: ""
SECRET_KEY: secret-test-value
run: python manage.py check
- name: Run API unittests
working-directory: ./api
run: pytest
env:
CERAMIC_CACHE_SCORER_ID: ""
SECRET_KEY: secret-test-value
DATABASE_URL: postgres://passport_scorer:passport_scorer_pwd@localhost:5432/passport_scorer
DATA_MODEL_DATABASE_URL: postgres://passport_scorer:passport_scorer_pwd@localhost:5432/passport_scorer
FF_API_ANALYTICS: on
- name: Install 1Password CLI
uses: 1password/install-cli-action@v1
- name: Configure 1Password Service Account
uses: 1password/load-secrets-action/configure@v1
with:
service-account-token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }}
- name: Load secret
id: op-load-secret
uses: 1password/load-secrets-action@v1
with:
export-env: true
env:
OP_SEVICE_ACCOUNT_TOKEN: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }}
UPTIME_ROBOT_API_KEY: op://DevOps/uptime-robot-config/ci/UPTIME_ROBOT_API_KEY
REGISTRY_API_KEY: op://DevOps/uptime-robot-config/ci/REGISTRY_API_KEY
REGISTRY_ROUND_ID: op://DevOps/uptime-robot-config/ci/REGISTRY_ROUND_ID
REGISTRY_SCORER_ID: op://DevOps/uptime-robot-config/ci/REGISTRY_SCORER_ID
REGISTRY_ADDRESS: op://DevOps/uptime-robot-config/ci/REGISTRY_ADDRESS
CERAMIC_CACHE_JWT_TOKEN: op://DevOps/uptime-robot-config/ceramic-cache/JWT_TOKEN
CERAMIC_CACHE_ADDRESS: op://DevOps/uptime-robot-config/ceramic-cache/ADDRESS
- name: URL Monitoring Check
working-directory: ./api
shell: bash
env:
CERAMIC_CACHE_SCORER_ID: ""
SECRET_KEY: secret-test-value
UPTIME_ROBOT_API_KEY: ${{ env.UPTIME_ROBOT_API_KEY }}
REGISTRY_API_KEY: ${{ env.REGISTRY_API_KEY }}
REGISTRY_ROUND_ID: ${{ env.REGISTRY_ROUND_ID }}
REGISTRY_SCORER_ID: ${{ env.REGISTRY_SCORER_ID }}
REGISTRY_ADDRESS: ${{ env.REGISTRY_ADDRESS }}
CERAMIC_CACHE_JWT_TOKEN: ${{ env.CERAMIC_CACHE_JWT_TOKEN }}
CERAMIC_CACHE_ADDRESS: ${{ env.CERAMIC_CACHE_ADDRESS }}
run:
python manage.py get_unmonitored_urls --base-url https://api.scorer.gitcoin.co/ --base-url-xyz https://api.passport.xyz/
ui-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install UI dependencies
working-directory: ./interface
run: yarn --frozen-lockfile && yarn build
- name: Run tests
working-directory: ./interface
run: yarn test