@@ -7,8 +7,10 @@ name: CI
7
7
jobs :
8
8
lint :
9
9
uses : ./.github/workflows/lint.yml
10
- build-and-deploy :
10
+ build-and-deploy-stg :
11
11
runs-on : ubuntu-latest
12
+ needs :
13
+ - lint
12
14
steps :
13
15
- uses : actions/checkout@v3
14
16
- uses : actions/setup-node@v3
@@ -20,13 +22,25 @@ jobs:
20
22
env :
21
23
CI : true
22
24
- uses : cloudflare/wrangler-action@1.3.0
23
- name : Deploy to Cloudflare
25
+ name : Deploy to Cloudflare (Staging)
24
26
with :
25
27
apiToken : " ${{ secrets.CF_API_TOKEN }}"
28
+ environment : " staging"
29
+ k6-load-test :
30
+ runs-on : ubuntu-latest
31
+ timeout-minutes : 30
32
+ needs :
33
+ - build-and-deploy-stg
34
+ steps :
35
+ - uses : actions/checkout@v3
36
+ - uses : grafana/k6-action@v0.2.0
37
+ name : Run k6 local test
38
+ with :
39
+ filename : scripts/test.js
26
40
semantic-release :
27
41
runs-on : ubuntu-latest
28
42
needs :
29
- - build-and-deploy
43
+ - k6-load-test
30
44
steps :
31
45
- uses : actions/checkout@v3
32
46
- uses : actions/setup-node@v3
@@ -35,18 +49,26 @@ jobs:
35
49
cache : npm
36
50
- run : npm ci
37
51
- run : npx semantic-release
38
- name : Semantic Release
52
+ name : Run Semantic Release
39
53
env :
40
54
GITHUB_TOKEN : " ${{ secrets.GITHUB_TOKEN }}"
41
55
NPM_TOKEN : " ${{ secrets.NPM_TOKEN }}"
42
- load-test :
56
+ build-and-deploy-prd :
43
57
runs-on : ubuntu-latest
44
- timeout-minutes : 30
45
58
needs :
46
- - build-and-deploy
59
+ - k6-load-test
47
60
steps :
48
61
- uses : actions/checkout@v3
49
- - uses : grafana/k6-action@v0.2.0
50
- name : Run k6 test
62
+ - uses : actions/setup-node@v3
51
63
with :
52
- filename : scripts/test.js
64
+ node-version : lts/*
65
+ cache : npm
66
+ - run : npm ci
67
+ - run : npm run build --if-present
68
+ env :
69
+ CI : true
70
+ - uses : cloudflare/wrangler-action@1.3.0
71
+ name : Deploy to Cloudflare (Production)
72
+ with :
73
+ apiToken : " ${{ secrets.CF_API_TOKEN }}"
74
+ environment : " production"
0 commit comments