5
5
- main
6
6
pull_request :
7
7
jobs :
8
- lint :
8
+ build :
9
9
runs-on : buildjet-4vcpu-ubuntu-2204
10
+ outputs :
11
+ cache-hit : ${{ steps.pnpm-cache.outputs.cache-hit }}
10
12
container :
11
13
image : node:22
12
14
steps :
@@ -19,95 +21,114 @@ jobs:
19
21
corepack enable
20
22
corepack prepare [email protected] --activate
21
23
pnpm config set script-shell "/usr/bin/bash"
22
- echo "::set-output name=pnpm_cache_dir::$(pnpm store path)"
23
24
24
25
- name : pnpm Cache
25
26
uses : buildjet/cache@v4
26
27
with :
27
- path : ${{ steps.pnpm-setup.outputs.pnpm_cache_dir }}
28
- key : ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
28
+ path : |
29
+ ~/.pnpm-store
30
+ node_modules
31
+ */*/node_modules
32
+ key : ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }}
29
33
restore-keys : |
30
- ${{ runner.os }}-pnpm-store-
34
+ ${{ runner.os }}-pnpm-
31
35
32
36
- name : Install packages
37
+ if : steps.pnpm-cache.outputs.cache-hit != 'true'
33
38
run : pnpm install --frozen-lockfile
34
39
40
+ - name : turborepo Cache
41
+ uses : buildjet/cache@v4
42
+ with :
43
+ path : |
44
+ .turbo
45
+ key : ${{ runner.os }}-turbo-${{ github.sha }}
46
+ restore-keys : |
47
+ ${{ runner.os }}-turbo-
48
+
35
49
- name : Run Build
36
50
run : pnpm build
37
51
38
- - name : Run Lint
39
- run : pnpm lint
40
-
41
- test :
52
+ lint :
42
53
runs-on : buildjet-4vcpu-ubuntu-2204
54
+ needs : [build]
43
55
container :
44
56
image : node:22
45
57
steps :
46
58
- name : Checkout
47
59
uses : actions/checkout@v4
48
60
49
- - name : Enable Corepack
50
- id : pnpm-setup
61
+ - name : Setup pnpm
51
62
run : |
52
63
corepack enable
53
64
corepack prepare [email protected] --activate
54
- pnpm config set script-shell "/usr/bin/bash"
55
- echo "::set-output name=pnpm_cache_dir::$(pnpm store path)"
56
65
57
- - name : pnpm Cache
66
+ - name : Restore dependencies
58
67
uses : buildjet/cache@v4
59
68
with :
60
- path : ${{ steps.pnpm-setup.outputs.pnpm_cache_dir }}
61
- key : ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
62
- restore-keys : |
63
- ${{ runner.os }}-pnpm-store-
69
+ path : |
70
+ ~/.pnpm-store
71
+ node_modules
72
+ */*/node_modules
73
+ key : ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }}
64
74
65
- - name : Install packages
66
- run : pnpm install --frozen-lockfile
75
+ - name : turborepo Cache
76
+ uses : buildjet/cache@v4
77
+ with :
78
+ path : |
79
+ .turbo
80
+ key : ${{ runner.os }}-turbo-${{ github.sha }}
81
+ restore-keys : |
82
+ ${{ runner.os }}-turbo-
67
83
68
84
- name : Run Build
69
85
run : pnpm build
70
86
71
- - name : Run Tests
72
- run : pnpm test
73
- env :
74
- SPAM_ASSASSIN_HOST : ${{ secrets.SPAM_ASSASSIN_HOST }}
75
- SPAM_ASSASSIN_PORT : ${{ secrets.SPAM_ASSASSIN_PORT }}
87
+ - name : Run Lint
88
+ run : pnpm lint
76
89
77
- build :
90
+ test :
78
91
runs-on : buildjet-4vcpu-ubuntu-2204
92
+ needs : [build]
79
93
container :
80
94
image : node:22
81
95
steps :
82
96
- name : Checkout
83
97
uses : actions/checkout@v4
84
98
85
- - name : Enable Corepack
86
- id : pnpm-setup
99
+ - name : Setup pnpm
87
100
run : |
88
101
corepack enable
89
102
corepack prepare [email protected] --activate
90
- pnpm config set script-shell "/usr/bin/bash"
91
- echo "::set-output name=pnpm_cache_dir::$(pnpm store path)"
92
103
93
- - name : pnpm Cache
104
+ - name : Restore dependencies
94
105
uses : buildjet/cache@v4
95
106
with :
96
- path : ${{ steps.pnpm-setup.outputs.pnpm_cache_dir }}
97
- key : ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
98
- restore-keys : |
99
- ${{ runner.os }}-pnpm-store-
107
+ path : |
108
+ ~/.pnpm-store
109
+ node_modules
110
+ */*/node_modules
111
+ key : ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }}
100
112
101
- - name : Install packages
102
- run : pnpm install --frozen-lockfile
113
+ - name : turborepo Cache
114
+ uses : buildjet/cache@v4
115
+ with :
116
+ path : |
117
+ .turbo
118
+ key : ${{ runner.os }}-turbo-${{ github.sha }}
119
+ restore-keys : |
120
+ ${{ runner.os }}-turbo-
103
121
104
- - name : Run Build
105
- run : pnpm build
122
+ - name : Run Tests
123
+ run : pnpm test
124
+ env :
125
+ SPAM_ASSASSIN_HOST : ${{ secrets.SPAM_ASSASSIN_HOST }}
126
+ SPAM_ASSASSIN_PORT : ${{ secrets.SPAM_ASSASSIN_PORT }}
106
127
107
128
dependencies :
108
129
runs-on : buildjet-4vcpu-ubuntu-2204
109
130
container :
110
- image : node:18
131
+ image : node:22
111
132
steps :
112
133
- name : Checkout
113
134
uses : actions/checkout@v4
0 commit comments