-
-
Notifications
You must be signed in to change notification settings - Fork 16
131 lines (128 loc) · 5.19 KB
/
nodejs.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
# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
name: Aletheia CI
on:
push:
branches: [stage, develop]
pull_request:
branches: [stage, develop]
env:
UMAMI_SITE_ID: ${{ secrets.DEVELOPMENT_UMAMI_SITE_ID }}
ORY_SDK_URL: http://127.0.0.1:4433 #${{ secrets.DEVELOPMENT_ORY_SDK_URL }}
# ORY_ACCESS_TOKEN: ${{ secrets.DEVELOPMENT_ORY_ACCESS_TOKEN }}
ALETHEIA_SCHEMA_ID: ${{ secrets.DEVELOPMENT_ALETHEIA_SCHEMA_ID }}
CI_ORY_USERID: ${{ secrets.CI_ORY_USERID }}
CI_ORY_USER_PASSWORD: ${{ secrets.CI_ORY_USER_PASSWORD }}
CI_MONGODB_URI: mongodb://127.0.0.1:35025/Aletheia
TEST_RECAPTCHA_SECRET: 6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe # public secret for CI tests provided by google
TEST_RECAPTCHA_SITEKEY: 6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI # public sitekey for CI tests provided by google
NEXT_PUBLIC_RECAPTCHA_SITEKEY: 6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI # public sitekey for CI tests provided by google
AWS_SDK_BUCKET: ${{ secrets.DEVELOPMENT_AWS_SDK_BUCKET }}
AWS_ACCESS_KEY_ID: ${{ secrets.DEVELOPMENT_AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.DEVELOPMENT_AWS_SECRET_ACCESS_KEY }}
GITLAB_FEATURE_FLAG_URL: ${{ secrets.GITLAB_FEATURE_FLAG_URL }}
GITLAB_FEATURE_FLAG_INSTANCE_ID: ${{ secrets.GITLAB_FEATURE_FLAG_INSTANCE_ID }}
MONGOMS_VERSION: 6.0.17
jobs:
test-docker:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18.19.1]
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Test docker image build before merge
run: |
docker build --build-arg ENVIRONMENT=development \
--build-arg NEXT_PUBLIC_UMAMI_SITE_ID=$NEXT_PUBLIC_UMAMI_SITE_ID \
--build-arg NEXT_PUBLIC_RECAPTCHA_SITEKEY=${{ secrets.NEXT_PUBLIC_RECAPTCHA_SITEKEY }} .
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18.19.1]
steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- run: yarn install
- run: cp config/localConfig.example.ts config/localConfig.ts
- run: yarn build
- uses: actions/upload-artifact@v4
with:
name: aletheia-dist
path: dist/
test-lint:
needs: build
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18.19.1]
steps:
- name: Checkout
uses: actions/checkout@v2
- uses: actions/download-artifact@v4
with:
name: aletheia-dist
path: dist
- run: yarn install
- run: cp config/localConfig.example.ts config/localConfig.ts
- run: yarn lint
- run: yarn test
env:
NODE_OPTIONS: "--max_old_space_size=4096"
# sonarcloud:
# runs-on: ubuntu-latest
# strategy:
# matrix:
# node-version: [18.19.1]
# steps:
- name: SonarCloud Scan
uses: SonarSource/sonarcloud-github-action@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
cypress-run:
needs: build
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v2
- uses: actions/download-artifact@v4
with:
name: aletheia-dist
path: dist
- run: |
echo '{"CI_ORY_USER_PASSWORD": "${{ env.CI_ORY_USER_PASSWORD }}"}' > ./cypress.env.json
yarn install
- run: cp config/localConfig.example.ts config/localConfig.ts
- run: yarn build
- name: Cypress run
uses: cypress-io/github-action@v6
with:
start: yarn test:e2e:cy
wait-on: "http://localhost:3000"
env:
CI: true
cypress-run-component:
needs: build
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v2
- uses: actions/download-artifact@v4
with:
name: aletheia-dist
path: dist
- run: |
echo '{"CI_ORY_USER_PASSWORD": "${{ env.CI_ORY_USER_PASSWORD }}"}' > ./cypress.env.json
yarn install
- run: cp config/localConfig.example.ts config/localConfig.ts
- run: yarn build
- name: Run Cypress Component Tests
run: yarn cypress run --component
env:
CI: true