-
Notifications
You must be signed in to change notification settings - Fork 2
149 lines (120 loc) · 3.75 KB
/
ci.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
147
148
149
name: CI checks
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
install-tools:
name: Install tools and dependencies
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/[email protected]
- name: Install Aftman
uses: ok-nick/[email protected]
- name: Setup Lune
run: lune setup
- name: Install dependencies with Wally
run: wally install
- name: Cache installed items
uses: actions/[email protected]
with:
path: |
~/.aftman
~/.lune
Packages
DevPackages
key: tools-${{ hashFiles('aftman.toml') }}
# Kampfkarren/selene is assumed to be included in the repository's aftman.toml file
linting:
name: Lint with Selene
runs-on: ubuntu-latest
needs: [install-tools]
steps:
- name: Checkout code
uses: actions/[email protected]
- name: Restore installed items
uses: actions/[email protected]
with:
path: |
~/.aftman
~/.lune
Packages
DevPackages
key: tools-${{ hashFiles('aftman.toml') }}
- name: Lint StateMachine
run: ./scripts/lint.sh src/StateMachine
- name: Lint tests
run: ./scripts/lint.sh src/TestService
- name: Lint Lune
run: ./scripts/lint.sh lune
# JohnnyMorganz/stylua is assumed to be included in the repository's aftman.toml file
formatting:
name: Check format with StyLua
runs-on: ubuntu-latest
needs: [install-tools]
steps:
- name: Checkout code
uses: actions/[email protected]
- name: Restore installed items
uses: actions/[email protected]
with:
path: |
~/.aftman
~/.lune
Packages
DevPackages
key: tools-${{ hashFiles('aftman.toml') }}
- name: Enforce StateMachine code style with StyLua
run: ./scripts/formatCheck.sh src/StateMachine
- name: Enforce tests code style with StyLua
run: ./scripts/formatCheck.sh src/TestService
- name: Enforce Lune scripts code style with StyLua
run: ./scripts/formatCheck.sh lune
# JohnnyMorganz/luau-lsp is assumed to be included in the repository's aftman.toml file
analyzing:
name: Analyze with luau-lsp
runs-on: ubuntu-latest
needs: [install-tools]
steps:
- name: Checkout code
uses: actions/[email protected]
- name: Restore installed items
uses: actions/[email protected]
with:
path: |
~/.aftman
~/.lune
Packages
DevPackages
key: tools-${{ hashFiles('aftman.toml') }}
- name: Analyze StateMachine with luau-lsp
run: |
./scripts/sourcemap.sh default.project.json stateMachineSourcemap.json
./scripts/analyze.sh stateMachineSourcemap.json src/StateMachine
- name: Analyze tests with luau-lsp
run: |
./scripts/sourcemap.sh test.project.json testSourcemap.json
./scripts/analyze.sh testSourcemap.json src/TestService
- name: Analyze Lune scripts with luau-lsp
run: ./scripts/analyze.sh lune
# lune-org/lune is assumed to be included in the repository's aftman.toml file
testing:
name: Run jest tests with Lune
runs-on: ubuntu-latest
needs: [install-tools]
steps:
- name: Checkout code
uses: actions/[email protected]
- name: Restore installed items
uses: actions/[email protected]
with:
path: |
~/.aftman
~/.lune
Packages
DevPackages
key: tools-${{ hashFiles('aftman.toml') }}
- name: Test with Lune
run: ./scripts/test.sh