Skip to content

Commit 637a8eb

Browse files
authored
all: make project hybrid: Installable as module and command (vlang#176)
1 parent d07b16f commit 637a8eb

31 files changed

+165
-131
lines changed

.github/workflows/ci.yml

+79-51
Original file line numberDiff line numberDiff line change
@@ -24,25 +24,36 @@ jobs:
2424
with:
2525
repository: vlang/v
2626

27-
- uses: actions/checkout@v2
28-
with:
29-
path: vab
30-
3127
- name: Build local v
3228
run: make -j4
3329

30+
- name: Checkout vab
31+
uses: actions/checkout@v2
32+
with:
33+
path: vab
34+
3435
- name: Test code formatting
3536
run: |
3637
cd vab
3738
../v test-fmt
3839
40+
- name: Symlink as module
41+
run: sudo ln -s $(pwd)/vab ~/.vmodules/vab # TODO workaround for doing `mv vab ~/.vmodules` below
42+
43+
# TODO this makes formatting checks fail?
44+
#- name: Simulate "v install vab"
45+
# run: mv vab ~/.vmodules
46+
3947
- name: Build vab
40-
run: ./v -g vab/vab.v
48+
run: ./v -g ~/.vmodules/vab
49+
50+
- name: Symlink vab command
51+
run: sudo ln -s ~/.vmodules/vab/vab /usr/local/bin/vab
4152

4253
- name: Test clean vab code
4354
run: |
4455
export VEXE=./v
45-
vab/vab test-cleancode vab
56+
vab test-cleancode ~/.vmodules/vab
4657
4758
ubuntu-latest-bootstrap:
4859
runs-on: ubuntu-latest
@@ -55,53 +66,60 @@ jobs:
5566
with:
5667
repository: vlang/v
5768

58-
- uses: actions/checkout@v2
69+
- name: Build local v
70+
run: make -j4
71+
72+
- name: Checkout vab
73+
uses: actions/checkout@v2
5974
with:
6075
path: vab
6176

62-
- name: Build local v
63-
run: make -j4
77+
- name: Simulate "v install vab"
78+
run: mv vab ~/.vmodules
6479

6580
- name: Run tests
66-
run: ./v test vab
81+
run: ./v test ~/.vmodules/vab
6782

6883
- name: Build vab with -prod
69-
run: ./v -prod vab/vab.v
84+
run: ./v -prod ~/.vmodules/vab
7085

7186
- name: Build vab
72-
run: ./v -g vab/vab.v
87+
run: ./v -g ~/.vmodules/vab
88+
89+
- name: Symlink vab
90+
run: sudo ln -s ~/.vmodules/vab/vab /usr/local/bin/vab
7391

7492
- name: Run 'vab --help'
75-
run: vab/vab --help
93+
run: vab --help
7694

7795
- name: Ruin Android environment on purpose
7896
run: |
7997
sudo rm -fr /usr/local/lib/android
8098
8199
- name: Run 'vab doctor'
82-
run: vab/vab doctor
100+
run: vab doctor
83101

84102
- name: Run 'vab install auto'
85103
run: |
86104
export ANDROID_SDK_ROOT="" # These are set in the CI by default
87105
export ANDROID_HOME=""
88106
export ANDROID_NDK_ROOT=""
89-
vab/vab install auto
107+
vab install auto
90108
91109
- name: Run vab doctor
92-
run: vab/vab doctor
110+
run: vab doctor
93111

94112
- name: Test vab complete
95113
run: |
96-
[ "$(vab/vab complete bash vab com)" = "COMPREPLY+=('complete')" ]
114+
[ "$(vab complete bash vab com)" = "COMPREPLY+=('complete')" ]
97115
98116
- name: Setup env
99117
run: |
100118
mkdir apks
101119
102120
- name: Build APK (Default) examples/sokol/particles
103121
run: |
104-
vab/vab examples/sokol/particles -o apks/particles.apk
122+
vab examples/sokol/particles -o apks/particles.apk
105123
[ -f apks/particles.apk ]
106124
107125
ubuntu-latest-build:
@@ -115,51 +133,58 @@ jobs:
115133
with:
116134
repository: vlang/v
117135

118-
- uses: actions/checkout@v2
136+
- name: Build local v
137+
run: make -j4
138+
139+
- name: Checkout vab
140+
uses: actions/checkout@v2
119141
with:
120142
path: vab
121143

122-
- name: Build local v
123-
run: make -j4
144+
- name: Simulate "v install vab"
145+
run: mv vab ~/.vmodules
124146

125147
- name: Run tests
126-
run: ./v test vab
148+
run: ./v test ~/.vmodules/vab
127149

128150
- name: Build vab with -prod
129-
run: ./v -prod vab/vab.v
151+
run: ./v -prod ~/.vmodules/vab
130152

131153
- name: Build vab
132-
run: ./v -g vab/vab.v
154+
run: ./v -g ~/.vmodules/vab
155+
156+
- name: Symlink vab
157+
run: sudo ln -s ~/.vmodules/vab/vab /usr/local/bin/vab
133158

134159
- name: Run 'vab --help'
135-
run: vab/vab --help
160+
run: vab --help
136161

137162
- name: Ruin Android environment on purpose
138163
run: |
139164
sudo rm -fr "$ANDROID_SDK_ROOT/platforms"
140165
141166
- name: Run 'vab doctor'
142-
run: vab/vab doctor
167+
run: vab doctor
143168

144169
- name: Run vab --list-* flags
145170
run: |
146-
vab/vab --list-apis
147-
vab/vab --list-build-tools
148-
vab/vab --list-ndks
171+
vab --list-apis
172+
vab --list-build-tools
173+
vab --list-ndks
149174
150175
- name: Run 'vab install "platforms;android-21"'
151-
run: vab/vab install "platforms;android-21"
176+
run: vab install "platforms;android-21"
152177

153178
- name: Run vab doctor
154-
run: vab/vab doctor
179+
run: vab doctor
155180

156181
- name: Setup env
157182
run: |
158183
mkdir apks
159184
160185
- name: Build APK (Default) examples/sokol/particles
161186
run: |
162-
vab/vab examples/sokol/particles -o apks/particles.apk
187+
vab examples/sokol/particles -o apks/particles.apk
163188
[ -f apks/particles.apk ]
164189
165190
#macos-latest-bootstrap:
@@ -171,13 +196,14 @@ jobs:
171196
#with:
172197
#repository: vlang/v
173198

174-
#- uses: actions/checkout@v2
175-
#with:
176-
#path: vab
177-
178199
#- name: Build local v
179200
#run: make -j4
180201

202+
#- name: Checkout vab
203+
#uses: actions/checkout@v2
204+
#with:
205+
#path: vab
206+
181207
#- name: Run tests
182208
#run: ./v test vab
183209

@@ -246,41 +272,43 @@ jobs:
246272
repository: vlang/v
247273
path: v
248274

249-
- uses: actions/checkout@v2
250-
with:
251-
path: vab
252-
253275
- name: Checkout vab
254276
uses: actions/checkout@v2
255277
with:
256278
path: vab
257279

280+
- name: Simulate "v install vab"
281+
run: Move-Item -Path .\vab -Destination $HOME\.vmodules\vab -force
282+
258283
- name: Run tests
259-
run: v test vab
284+
run: v test "$HOME\.vmodules\vab"
260285

261286
# TODO fails on Windows
262287
# - name: Build vab with -prod
263-
# run: v -prod vab/vab.v
288+
# run: v -prod "$HOME\.vmodules\vab"
264289

265290
- name: Build vab
266-
run: v -g vab/vab.v
291+
run: v -g "$HOME\.vmodules\vab"
292+
293+
- name: Add vab to PATH
294+
run: echo "$HOME\.vmodules\vab" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
267295

268296
- name: Run vab --help
269-
run: vab/vab --help
297+
run: vab --help
270298

271299
- name: Install AAB dependencies
272300
run: |
273-
vab/vab install bundletool
274-
vab/vab install aapt2
301+
vab install bundletool
302+
vab install aapt2
275303
276304
- name: Run vab doctor
277-
run: vab/vab doctor
305+
run: vab doctor
278306

279307
- name: Run vab --list-* flags
280308
run: |
281-
vab/vab --list-apis
282-
vab/vab --list-build-tools
283-
vab/vab --list-ndks
309+
vab --list-apis
310+
vab --list-build-tools
311+
vab --list-ndks
284312
285313
- name: Setup env
286314
run: |
@@ -289,5 +317,5 @@ jobs:
289317
290318
- name: Build APK (Default) v/examples/sokol/particles
291319
run: |
292-
vab/vab v/examples/sokol/particles -o apks/particles.apk
320+
vab v\examples\sokol\particles -o apks\particles.apk
293321
# TODO vab/vab v/examples/sokol/particles -o aabs/particles.aab

.github/workflows/ci_emulator_run.yml

+8-6
Original file line numberDiff line numberDiff line change
@@ -34,17 +34,20 @@ jobs:
3434
with:
3535
path: vab
3636

37+
- name: Simulate "v install vab"
38+
run: mv vab ~/.vmodules
39+
3740
- name: Run tests
38-
run: v test vab
41+
run: v test ~/.vmodules/vab
3942

4043
- name: Build vab with -prod
41-
run: v -prod vab/vab.v
44+
run: v -prod ~/.vmodules/vab
4245

4346
- name: Build vab
44-
run: v -g vab/vab.v
47+
run: v -g ~/.vmodules/vab
4548

4649
- name: Symlink vab
47-
run: cd vab && sudo ln -s "$(pwd)/vab" /usr/local/bin/vab
50+
run: sudo ln -s ~/.vmodules/vab/vab /usr/local/bin/vab
4851

4952
- name: Run vab --help
5053
run: vab --help
@@ -55,8 +58,7 @@ jobs:
5558
vab install aapt2
5659
5760
- name: Run vab doctor
58-
run: |
59-
vab doctor
61+
run: vab doctor
6062

6163
- name: Cache emulator
6264
id: cache-emulator

.github/workflows/matrix_ci.yml

+26-15
Original file line numberDiff line numberDiff line change
@@ -33,20 +33,26 @@ jobs:
3333
uses: actions/checkout@v2
3434
with:
3535
repository: vlang/v
36-
- uses: actions/checkout@v2
37-
with:
38-
path: vab
36+
3937
- name: Build local v
4038
run: make -j2
4139

40+
- name: Checkout vab
41+
uses: actions/checkout@v2
42+
with:
43+
path: vab
44+
45+
- name: Simulate "v install vab"
46+
run: mv vab ~/.vmodules
47+
4248
- name: Run tests
43-
run: ./v test vab
49+
run: ./v test ~/.vmodules/vab
4450

4551
- name: Build vab
46-
run: ./v -g vab/vab.v
52+
run: ./v -g ~/.vmodules/vab
4753

4854
- name: Symlink vab
49-
run: cd vab && sudo ln -s "$(pwd)/vab" /usr/local/bin/vab
55+
run: sudo ln -s ~/.vmodules/vab/vab /usr/local/bin/vab
5056

5157
- name: Run vab --help
5258
run: vab --help
@@ -69,15 +75,16 @@ jobs:
6975
package_id=$( echo "$example" | sed 's%/%%' | sed 's%\.%%' )
7076
package_id=$( echo "v$package_id" )
7177
78+
7279
# Setup env
7380
mkdir -p java-${{ matrix.java-version }}/$example
7481
7582
# APK
76-
vab --package-id "io.v.apk.$package_id" --api ${{ matrix.android-api }} examples/$example -o java-${{ matrix.java-version }}/$example/$package_id.apk
83+
vab --package-id "io.v.apk.$package_id" --api ${{ matrix.android-api }} "examples/$example" -o java-${{ matrix.java-version }}/$example/$package_id.apk
7784
[ -f java-${{ matrix.java-version }}/$example/$package_id.apk ]
7885
7986
# AAB
80-
vab --package-id "io.v.aab.$package_id" --api ${{ matrix.android-api }} examples/$example -o java-${{ matrix.java-version }}/$example/$package_id.aab
87+
vab --package-id "io.v.aab.$package_id" --api ${{ matrix.android-api }} "examples/$example" -o java-${{ matrix.java-version }}/$example/$package_id.aab
8188
8289
# Checks output inferring
8390
[ -f java-${{ matrix.java-version }}/$example/$package_id.aab ]
@@ -104,21 +111,25 @@ jobs:
104111
with:
105112
repository: vlang/v
106113

107-
- uses: actions/checkout@v2
114+
- name: Build local v
115+
run: make -j2
116+
117+
- name: Checkout vab
118+
uses: actions/checkout@v2
108119
with:
109120
path: vab
110121

111-
- name: Build local v
112-
run: make -j2
122+
- name: Simulate "v install vab"
123+
run: mv vab ~/.vmodules
113124

114125
- name: Run tests
115-
run: ./v test vab
126+
run: ./v test ~/.vmodules/vab
116127

117128
- name: Build vab
118-
run: ./v -g vab/vab.v
129+
run: ./v -g ~/.vmodules/vab
119130

120131
- name: Symlink vab
121-
run: cd vab && sudo ln -s "$(pwd)/vab" /usr/local/bin/vab
132+
run: sudo ln -s ~/.vmodules/vab/vab /usr/local/bin/vab
122133

123134
- name: Run vab --help
124135
run: vab --help
@@ -139,6 +150,6 @@ jobs:
139150
mkdir -p gc-java-${{ matrix.java-version }}/$example
140151
141152
# APK
142-
vab -gc boehm --package-id "io.v.apk.$package_id" --api ${{ matrix.android-api }} examples/$example -o gc-java-${{ matrix.java-version }}/$example/$package_id.apk
153+
vab -gc boehm --package-id "io.v.apk.$package_id" --api ${{ matrix.android-api }} "examples/$example" -o gc-java-${{ matrix.java-version }}/$example/$package_id.apk
143154
144155
done

0 commit comments

Comments
 (0)