-
Notifications
You must be signed in to change notification settings - Fork 0
129 lines (125 loc) · 6.09 KB
/
ci.yml
File metadata and controls
129 lines (125 loc) · 6.09 KB
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
name: CI
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
workflow_dispatch:
permissions:
id-token: write
contents: read
jobs:
test:
runs-on: ${{ matrix.os }}
environment: GCAPI-Backend
strategy:
fail-fast: true
matrix:
os: ["ubuntu-latest"]
python-version: ["3.12"]
env:
API_MODE: "test"
ENVIRONMENT: "pytest"
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
SENTRY_DSN: ${{ secrets.SENTRY_DSN }}
# core
API_ALLOWED_CORS: ${{ secrets.API_ALLOWED_CORS }}
API_RSA_PRIVATE_KEY: ${{ secrets.API_RSA_PRIVATE_KEY }}
API_RSA_PUBLIC_KEY: ${{ secrets.API_RSA_PUBLIC_KEY }}
API_SECRET_KEY: ${{ secrets.API_SECRET_KEY }}
API_CSRF_KEY: ${{ secrets.API_CSRF_KEY }}
API_ENCRYPTION_KEY: ${{ secrets.API_ENCRYPTION_KEY }}
API_ENCRYPTION_SALT: ${{ secrets.API_ENCRYPTION_SALT }}
# limits
API_QUERY_LIMIT_OFFSET_DEFAULT: ${{ secrets.API_QUERY_LIMIT_OFFSET_DEFAULT }}
API_QUERY_LIMIT_ROWS_DEFAULT: ${{ secrets.API_QUERY_LIMIT_ROWS_DEFAULT }}
API_QUERY_LIMIT_ROWS_MAX: ${{ secrets.API_QUERY_LIMIT_ROWS_MAX }}
# auth
CLERK_SECRET_KEY: ${{ secrets.CLERK_SECRET_KEY }}
CLERK_ISSUER: ${{ secrets.CLERK_ISSUER }}
CLERK_PEM_PUBLIC_KEY: ${{ secrets.CLERK_PEM_PUBLIC_KEY }}
# users
CLERK_FIRST_ADMIN_TEST_TOKEN: ${{ secrets.CLERK_FIRST_ADMIN_TEST_TOKEN }}
CLERK_FIRST_ADMIN_AUTH_ID: ${{ secrets.CLERK_FIRST_ADMIN_AUTH_ID }}
CLERK_FIRST_ADMIN: ${{ secrets.CLERK_FIRST_ADMIN }}
CLERK_FIRST_ADMIN_PASSWORD: ${{ secrets.CLERK_FIRST_ADMIN_PASSWORD }}
CLERK_FIRST_ADMIN_PICTURE: ${{ secrets.CLERK_FIRST_ADMIN_PICTURE }}
CLERK_FIRST_MANAGER_TEST_TOKEN: ${{ secrets.CLERK_FIRST_MANAGER_TEST_TOKEN }}
CLERK_FIRST_MANAGER_AUTH_ID: ${{ secrets.CLERK_FIRST_MANAGER_AUTH_ID }}
CLERK_FIRST_MANAGER: ${{ secrets.CLERK_FIRST_MANAGER }}
CLERK_FIRST_MANAGER_PASSWORD: ${{ secrets.CLERK_FIRST_MANAGER_PASSWORD }}
CLERK_FIRST_MANAGER_PICTURE: ${{ secrets.CLERK_FIRST_MANAGER_PICTURE }}
CLERK_FIRST_EMPLOYEE_TEST_TOKEN: ${{ secrets.CLERK_FIRST_EMPLOYEE_TEST_TOKEN }}
CLERK_FIRST_EMPLOYEE_AUTH_ID: ${{ secrets.CLERK_FIRST_EMPLOYEE_AUTH_ID }}
CLERK_FIRST_EMPLOYEE: ${{ secrets.CLERK_FIRST_EMPLOYEE }}
CLERK_FIRST_EMPLOYEE_PASSWORD: ${{ secrets.CLERK_FIRST_EMPLOYEE_PASSWORD }}
CLERK_FIRST_EMPLOYEE_PICTURE: ${{ secrets.CLERK_FIRST_EMPLOYEE_PICTURE }}
CLERK_FIRST_CLIENT_A_TEST_TOKEN: ${{ secrets.CLERK_FIRST_CLIENT_A_TEST_TOKEN }}
CLERK_FIRST_CLIENT_A_AUTH_ID: ${{ secrets.CLERK_FIRST_CLIENT_A_AUTH_ID }}
CLERK_FIRST_CLIENT_A: ${{ secrets.CLERK_FIRST_CLIENT_A }}
CLERK_FIRST_CLIENT_A_PASSWORD: ${{ secrets.CLERK_FIRST_CLIENT_A_PASSWORD }}
CLERK_FIRST_CLIENT_A_PICTURE: ${{ secrets.CLERK_FIRST_CLIENT_A_PICTURE }}
CLERK_FIRST_CLIENT_B_TEST_TOKEN: ${{ secrets.CLERK_FIRST_CLIENT_B_TEST_TOKEN }}
CLERK_FIRST_CLIENT_B_AUTH_ID: ${{ secrets.CLERK_FIRST_CLIENT_B_AUTH_ID }}
CLERK_FIRST_CLIENT_B: ${{ secrets.CLERK_FIRST_CLIENT_B }}
CLERK_FIRST_CLIENT_B_PASSWORD: ${{ secrets.CLERK_FIRST_CLIENT_B_PASSWORD }}
CLERK_FIRST_CLIENT_B_PICTURE: ${{ secrets.CLERK_FIRST_CLIENT_B_PICTURE }}
CLERK_FIRST_USER_VERIFIED_TEST_TOKEN: ${{ secrets.CLERK_FIRST_USER_VERIFIED_TEST_TOKEN }}
CLERK_FIRST_USER_VERIFIED_AUTH_ID: ${{ secrets.CLERK_FIRST_USER_VERIFIED_AUTH_ID }}
CLERK_FIRST_USER_VERIFIED: ${{ secrets.CLERK_FIRST_USER_VERIFIED }}
CLERK_FIRST_USER_VERIFIED_PASSWORD: ${{ secrets.CLERK_FIRST_USER_VERIFIED_PASSWORD }}
CLERK_FIRST_USER_UNVERIFIED_TEST_TOKEN: ${{ secrets.CLERK_FIRST_USER_UNVERIFIED_TEST_TOKEN }}
CLERK_FIRST_USER_UNVERIFIED_AUTH_ID: ${{ secrets.CLERK_FIRST_USER_UNVERIFIED_AUTH_ID }}
CLERK_FIRST_USER_UNVERIFIED: ${{ secrets.CLERK_FIRST_USER_UNVERIFIED }}
CLERK_FIRST_USER_UNVERIFIED_PASSWORD: ${{ secrets.CLERK_FIRST_USER_UNVERIFIED_PASSWORD }}
# email
EMAIL_ENABLED: ${{ secrets.EMAIL_ENABLED }}
EMAIL_FROM_EMAIL: ${{ secrets.EMAIL_FROM_EMAIL }}
EMAIL_FROM_NAME: ${{ secrets.EMAIL_FROM_NAME }}
EMAIL_PROVIDER_RESTRICTION: ${{ secrets.EMAIL_PROVIDER_RESTRICTION }}
EMAIL_ALLOWED_PROVIDERS: ${{ secrets.EMAIL_ALLOWED_PROVIDERS }}
EMAIL_ALLOWED_FROM_EMAILS: ${{ secrets.EMAIL_ALLOWED_FROM_EMAILS }}
EMAIL_TEST_USER: ${{ secrets.EMAIL_TEST_USER }}
# cloudkeys
CLOUDKEY_IPINFO: ${{ secrets.CLOUDKEY_IPINFO }}
CLOUDKEY_GOOGLE_API: ${{ secrets.CLOUDKEY_GOOGLE_API }}
# aws
AWS_ACCESS_KEY_ID: ${{ secrets.CLOUDKEY_AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.CLOUDKEY_AWS_SECRET_ACCESS_KEY }}
CLOUDKEY_AWS_ACCESS_KEY_ID: ${{ secrets.CLOUDKEY_AWS_ACCESS_KEY_ID }}
CLOUDKEY_AWS_SECRET_ACCESS_KEY: ${{ secrets.CLOUDKEY_AWS_SECRET_ACCESS_KEY }}
CLOUDKEY_AWS_DEFAULT_REGION: ${{ secrets.CLOUDKEY_AWS_DEFAULT_REGION }}
CLOUDKEY_AWS_S3_DEFAULT_BUCKET: ${{ secrets.CLOUDKEY_AWS_S3_DEFAULT_BUCKET }}
steps:
- name: Checkout Source
uses: actions/checkout@v4
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.CLOUDKEY_AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.CLOUDKEY_AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ secrets.CLOUDKEY_AWS_DEFAULT_REGION }}
- name: Load AWS Account
run: aws sts get-caller-identity
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: "pip"
- name: Install Dependencies
run: |
python -m pip install --upgrade pip \
&& python -m pip install -r requirements.txt
- name: Run Python Tests
run: |
bash ./scripts/test-cov.sh
- name: Upload Coverage
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
env_vars: OS,PYTHON
files: ./coverage.xml
flags: unittests
name: codecov-umbrella
fail_ci_if_error: false
verbose: false