-
Notifications
You must be signed in to change notification settings - Fork 90
146 lines (128 loc) · 3.77 KB
/
lint_test_build.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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
on:
push:
branches:
- '!main'
pull_request:
types:
- opened
- synchronize
name: PR Checks
jobs:
checkout:
runs-on: ubuntu-22.04
timeout-minutes: 3
steps:
- uses: actions/checkout@v4
- uses: ./.github/workflows/rafiki/env-setup
- run: pnpm checks
graphql:
runs-on: ubuntu-22.04
needs: checkout
steps:
- uses: actions/checkout@v4
- uses: ./.github/workflows/rafiki/env-setup
- name: generate backend graphql
run: pnpm --filter backend generate
- name: generate auth graphql
run: pnpm --filter auth generate
- name: verify changed files
uses: tj-actions/verify-changed-files@v19
id: verify-changed-files
with:
files: |
**/generated/graphql.*
- name: fail if GraphQL was generated
if: steps.verify-changed-files.outputs.files_changed == 'true'
run: exit 1
backend:
runs-on: ubuntu-22.04
needs: [checkout]
timeout-minutes: 25
steps:
- uses: actions/checkout@v4
- uses: ./.github/workflows/rafiki/env-setup
- run: pnpm --filter backend build:deps
- run: NODE_OPTIONS=--max-old-space-size=4096 pnpm --filter backend test:ci
frontend:
runs-on: ubuntu-22.04
needs: checkout
timeout-minutes: 5
steps:
- uses: actions/checkout@v4
- uses: ./.github/workflows/rafiki/env-setup
- run: pnpm --filter frontend typecheck
- run: pnpm --filter frontend build
auth:
runs-on: ubuntu-22.04
needs: [checkout]
timeout-minutes: 5
steps:
- uses: actions/checkout@v4
- uses: ./.github/workflows/rafiki/env-setup
- run: pnpm --filter auth build:deps
- run: pnpm --filter auth test
- name: AsyncAPI extension
run: |
echo "{\"extends\":[\"spectral:oas\",\"spectral:asyncapi\"]}" >> .spectral.json
- name: Validate Open API specs
run: |
npx @stoplight/spectral-cli lint ./packages/auth/openapi/*.yaml
mock-account-servicing-entity:
runs-on: ubuntu-22.04
needs: checkout
timeout-minutes: 5
steps:
- uses: actions/checkout@v4
- uses: ./.github/workflows/rafiki/env-setup
- run: pnpm --filter mock-account-servicing-entity build
- run: pnpm --filter mock-account-servicing-entity typecheck
token-introspection:
runs-on: ubuntu-22.04
needs: checkout
timeout-minutes: 5
steps:
- uses: actions/checkout@v4
- uses: ./.github/workflows/rafiki/env-setup
- run: pnpm --filter token-introspection test
- name: AsyncAPI extension
run: |
echo "{\"extends\":[\"spectral:oas\",\"spectral:asyncapi\"]}" >> .spectral.json
- name: Validate Open API specs
run: |
npx @stoplight/spectral-cli lint ./packages/token-introspection/openapi/*.yaml
integration-test:
runs-on: ubuntu-22.04
needs: checkout
timeout-minutes: 5
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup environment
uses: ./.github/workflows/rafiki/env-setup
- name: Setup hosts
run: |
echo "127.0.0.1 host.docker.internal" | sudo tee -a /etc/hosts
- name: Build dependencies
run: pnpm --filter integration build:deps
- name: Run tests
run: pnpm --filter integration run-tests
build:
runs-on: ubuntu-22.04
timeout-minutes: 5
needs:
- backend
- frontend
- auth
- mock-account-servicing-entity
- token-introspection
steps:
- uses: actions/checkout@v4
- uses: ./.github/workflows/rafiki/env-setup
- run: pnpm build
all_pr_checks_passed:
runs-on: ubuntu-22.04
needs:
- build
- integration-test
steps:
- run: echo 'PR Checks Passed'