Skip to content

Commit 46f2616

Browse files
authored
Merge pull request #58 from DeLaGuardo/boot-on-windows
Refactoring: boot.exe on windows and cache for installed tools
2 parents 0481a41 + 57e50d7 commit 46f2616

26 files changed

+67289
-8416
lines changed

.github/workflows/smoke-tests.yml

Lines changed: 44 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ jobs:
88
test-tools-deps:
99
strategy:
1010
matrix:
11-
operating-system: [ubuntu-latest, macOS-latest]
11+
os: [ubuntu-latest, macOS-latest, windows-latest]
1212

13-
runs-on: ${{ matrix.operating-system }}
13+
runs-on: ${{ matrix.os }}
1414

1515
steps:
1616
- name: Checkout
@@ -23,15 +23,15 @@ jobs:
2323
java-version: '8'
2424

2525
- name: Install clojure tools-deps
26-
# uses: DeLaGuardo/setup-clojure@master
27-
uses: ./
26+
uses: DeLaGuardo/setup-clojure@boot-on-windows
27+
# uses: ./
2828
with:
2929
tools-deps: 1.10.1.693
3030

3131
- name: Execute clojure code
3232
run: clojure -e "(+ 1 1)"
3333

34-
clojure-cli:
34+
test-clojure-cli:
3535
strategy:
3636
matrix:
3737
os: [ubuntu-latest, macOS-latest, windows-latest]
@@ -49,8 +49,8 @@ jobs:
4949
java-version: '8'
5050

5151
- name: Install clojure tools-deps
52-
# uses: DeLaGuardo/setup-clojure@master
53-
uses: ./
52+
uses: DeLaGuardo/setup-clojure@boot-on-windows
53+
# uses: ./
5454
with:
5555
cli: 1.10.1.693
5656

@@ -64,7 +64,7 @@ jobs:
6464
run: clojure -e "(+ 1 1)"
6565
shell: powershell
6666

67-
clojure-cmd-exe:
67+
test-clojure-cmd-exe:
6868
runs-on: windows-latest
6969

7070
steps:
@@ -78,8 +78,8 @@ jobs:
7878
java-version: '8'
7979

8080
- name: Install clojure tools-deps
81-
# uses: DeLaGuardo/setup-clojure@master
82-
uses: ./
81+
uses: DeLaGuardo/setup-clojure@boot-on-windows
82+
# uses: ./
8383
with:
8484
cli: 'latest'
8585
cmd-exe-workaround: 'latest'
@@ -95,9 +95,9 @@ jobs:
9595
test-leiningen:
9696
strategy:
9797
matrix:
98-
operating-system: [ubuntu-latest, macOS-latest, windows-latest]
98+
os: [ubuntu-latest, macOS-latest, windows-latest]
9999

100-
runs-on: ${{ matrix.operating-system }}
100+
runs-on: ${{ matrix.os }}
101101

102102
steps:
103103
- name: Checkout
@@ -110,8 +110,8 @@ jobs:
110110
java-version: '8'
111111

112112
- name: Install leiningen
113-
# uses: DeLaGuardo/setup-clojure@master
114-
uses: ./
113+
uses: DeLaGuardo/setup-clojure@boot-on-windows
114+
# uses: ./
115115
with:
116116
lein: 2.9.1
117117
github-token: ${{ secrets.GITHUB_TOKEN }}
@@ -122,9 +122,9 @@ jobs:
122122
test-boot:
123123
strategy:
124124
matrix:
125-
operating-system: [ubuntu-latest, macOS-latest]
125+
os: [ubuntu-latest, macOS-latest, windows-latest]
126126

127-
runs-on: ${{ matrix.operating-system }}
127+
runs-on: ${{ matrix.os }}
128128

129129
steps:
130130
- name: Checkout
@@ -134,11 +134,11 @@ jobs:
134134
uses: actions/setup-java@v3
135135
with:
136136
distribution: 'zulu'
137-
java-version: '8'
137+
java-version: '11'
138138

139139
- name: Install boot
140-
# uses: DeLaGuardo/setup-clojure@master
141-
uses: ./
140+
uses: DeLaGuardo/setup-clojure@boot-on-windows
141+
# uses: ./
142142
with:
143143
boot: 2.8.3
144144
github-token: ${{ secrets.GITHUB_TOKEN }}
@@ -149,9 +149,9 @@ jobs:
149149
test-bb:
150150
strategy:
151151
matrix:
152-
operating-system: [ubuntu-latest, macOS-latest, windows-latest]
152+
os: [ubuntu-latest, macOS-latest, windows-latest]
153153

154-
runs-on: ${{ matrix.operating-system }}
154+
runs-on: ${{ matrix.os }}
155155

156156
steps:
157157
- name: Checkout
@@ -164,8 +164,8 @@ jobs:
164164
java-version: '8'
165165

166166
- name: Install babashka
167-
# uses: DeLaGuardo/setup-clojure@master
168-
uses: ./
167+
uses: DeLaGuardo/setup-clojure@boot-on-windows
168+
# uses: ./
169169
with:
170170
bb: latest
171171
github-token: ${{ secrets.GITHUB_TOKEN }}
@@ -176,9 +176,9 @@ jobs:
176176
test-clj-kondo:
177177
strategy:
178178
matrix:
179-
operating-system: [ubuntu-latest, macOS-latest, windows-latest]
179+
os: [ubuntu-latest, macOS-latest, windows-latest]
180180

181-
runs-on: ${{ matrix.operating-system }}
181+
runs-on: ${{ matrix.os }}
182182

183183
steps:
184184
- name: Checkout
@@ -191,8 +191,8 @@ jobs:
191191
java-version: '8'
192192

193193
- name: Install clj-kondo
194-
# uses: DeLaGuardo/setup-clojure@master
195-
uses: ./
194+
uses: DeLaGuardo/setup-clojure@boot-on-windows
195+
# uses: ./
196196
with:
197197
clj-kondo: latest
198198
github-token: ${{ secrets.GITHUB_TOKEN }}
@@ -203,9 +203,9 @@ jobs:
203203
test-cljstyle:
204204
strategy:
205205
matrix:
206-
operating-system: [ubuntu-latest, macOS-latest]
206+
os: [ubuntu-latest, macOS-latest]
207207

208-
runs-on: ${{ matrix.operating-system }}
208+
runs-on: ${{ matrix.os }}
209209

210210
steps:
211211
- name: Checkout
@@ -218,8 +218,8 @@ jobs:
218218
java-version: '8'
219219

220220
- name: Install cljstyle
221-
# uses: DeLaGuardo/setup-clojure@master
222-
uses: ./
221+
uses: DeLaGuardo/setup-clojure@boot-on-windows
222+
# uses: ./
223223
with:
224224
cljstyle: latest
225225
github-token: ${{ secrets.GITHUB_TOKEN }}
@@ -231,9 +231,9 @@ jobs:
231231

232232
strategy:
233233
matrix:
234-
operating-system: [ubuntu-latest, macOS-latest, windows-latest]
234+
os: [ubuntu-latest, macOS-latest, windows-latest]
235235

236-
runs-on: ${{ matrix.operating-system }}
236+
runs-on: ${{ matrix.os }}
237237

238238
steps:
239239
- name: Checkout
@@ -246,8 +246,8 @@ jobs:
246246
java-version: '8'
247247

248248
- name: Install zprint
249-
# uses: DeLaGuardo/setup-clojure@master
250-
uses: ./
249+
uses: DeLaGuardo/setup-clojure@boot-on-windows
250+
# uses: ./
251251
with:
252252
zprint: latest
253253
github-token: ${{ secrets.GITHUB_TOKEN }}
@@ -269,16 +269,16 @@ jobs:
269269
java-version: '8'
270270

271271
- name: Install all the tools
272-
# uses: DeLaGuardo/setup-clojure@master
273-
uses: ./
272+
uses: DeLaGuardo/setup-clojure@boot-on-windows
273+
# uses: ./
274274
with:
275-
cli: latest
276-
lein: latest
277-
boot: latest
278-
bb: latest
279-
clj-kondo: latest
280-
cljstyle: latest
281-
zprint: latest
275+
cli: 1.11.1.1149
276+
lein: 2.9.1
277+
boot: 2.8.3
278+
bb: 0.8.157
279+
clj-kondo: 2022.06.22
280+
cljstyle: 0.15.0
281+
zprint: 1.2.3
282282
github-token: ${{ secrets.GITHUB_TOKEN }}
283283

284284
- name: Check Clojure CLI

.github/workflows/workflow.yml

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,17 +11,30 @@ jobs:
1111
- name: Checkout
1212
uses: actions/checkout@master
1313

14-
- name: Set Node.js 12.x
14+
- name: Set Node.js 16.x
1515
uses: actions/setup-node@master
1616
with:
17-
version: 12.x
17+
version: 16.x
1818

1919
- name: Setup java
2020
uses: actions/setup-java@v3
2121
with:
2222
distribution: 'zulu'
2323
java-version: '12'
2424

25+
- name: Get npm cache directory
26+
id: npm-cache-dir
27+
run: |
28+
echo "::set-output name=dir::$(npm config get cache)"
29+
30+
- uses: actions/cache@v3
31+
id: npm-cache # use this to check for `cache-hit` ==> if: steps.npm-cache.outputs.cache-hit != 'true'
32+
with:
33+
path: ${{ steps.npm-cache-dir.outputs.dir }}
34+
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
35+
restore-keys: |
36+
${{ runner.os }}-node-
37+
2538
- name: npm install
2639
run: npm install
2740

.node-version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
14.17.0
1+
18.4.0

README.md

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,16 @@
22

33
This action sets up Clojure tools environment for using in GitHub Actions.
44

5-
* Clojure CLI
6-
* Leiningen
7-
* boot-clj
8-
* Babashka
9-
* Clj-kondo
10-
* cljstyle
11-
* zprint
5+
* [Clojure CLI](https://clojure.org/guides/deps_and_cli)
6+
* [leiningen](https://leiningen.org/)
7+
* [boot-clj](https://boot-clj.github.io/)
8+
* [babashka](https://babashka.org/)
9+
* [clj-kondo](https://github.com/clj-kondo/clj-kondo)
10+
* [cljstyle](https://github.com/greglook/cljstyle)
11+
* [deps.clj](https://github.com/borkdude/deps.clj)
12+
* [zprint](https://github.com/kkinnear/zprint)
1213

13-
All three major tools available for MacOS and ubuntu based runners, Leiningen and Clojure CLI also available on Windows
14+
All three major tools (Clojure CLI, leiningen and boot-clj) available for MacOS, Ubuntu and Windows based runners. Please look at [Smoke Test Workflow file](https://github.com/DeLaGuardo/setup-clojure/blob/master/.github/workflows/smoke-tests.yml) for compatibility matrix.
1415

1516
# Usage
1617

@@ -35,25 +36,28 @@ jobs:
3536
- name: Checkout
3637
uses: actions/checkout@v3
3738

39+
# It is important to install java before installing clojure tools which needs java
40+
# exclusions: babashka, clj-kondo and cljstyle
3841
- name: Prepare java
3942
uses: actions/setup-java@v3
4043
with:
4144
distribution: 'zulu'
4245
java-version: '8'
4346

4447
- name: Install clojure tools
45-
uses: DeLaGuardo/setup-clojure@7.0
48+
uses: DeLaGuardo/setup-clojure@9.0
4649
with:
4750
# Install just one or all simultaneously
4851
# The value must indicate a particular version of the tool, or use 'latest'
4952
# to always provision the latest version
50-
cli: 1.10.1.693 # Clojure CLI based on tools.deps
51-
lein: 2.9.1 # Leiningen
52-
boot: 2.8.3 # Boot.clj
53-
bb: 0.7.8 # Babashka
54-
clj-kondo: 2022.05.31 # Clj-kondo
55-
cljstyle: 0.15.0 # cljstyle
56-
cmd-exe-workaround: 'latest' # Replace `clojure` with `deps.clj` on Windows
53+
cli: 1.10.1.693 # Clojure CLI based on tools.deps
54+
lein: 2.9.1 # Leiningen
55+
boot: 2.8.3 # Boot.clj
56+
bb: 0.7.8 # Babashka
57+
clj-kondo: 2022.05.31 # Clj-kondo
58+
cljstyle: 0.15.0 # cljstyle
59+
cmd-exe-workaround: 'latest' # Replaces `clojure` with `deps.clj` on Windows
60+
zprint: 1.2.3 # zprint
5761

5862
- name: Execute clojure code on Linux and MacOS
5963
if: ${{ matrix.os != 'windows-latest' }}
@@ -69,8 +73,6 @@ jobs:
6973
run: lein -v
7074

7175
- name: Get boot version
72-
# Boot is not yet available for windows
73-
if: ${{ matrix.os != 'windows-latest' }}
7476
run: boot -V
7577

7678
- name: Get babashka version

__tests__/boot.test.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import * as _fs from '../src/fs'
55
import * as _tc from '@actions/tool-cache'
66
import * as _os from 'os'
77
import {join} from 'path'
8+
import {VERSION} from '../src/version'
89

910
import * as boot from '../src/boot'
1011

@@ -82,7 +83,7 @@ describe('boot tests', () => {
8283
expect(tc.cacheDir).toHaveBeenCalledWith(
8384
join(tempPath, 'temp_2000000000', 'boot'),
8485
'Boot',
85-
'2.8.3-3-6'
86+
`2.8.3-${VERSION}`
8687
)
8788
expect(core.exportVariable).toHaveBeenCalledWith(
8889
'BOOT_HOME',
@@ -119,7 +120,7 @@ describe('boot tests', () => {
119120
expect(tc.cacheDir).toHaveBeenCalledWith(
120121
join(tempPath, 'temp_2000000000', 'boot'),
121122
'Boot',
122-
'latest.0.0-3-6'
123+
`latest.0.0-${VERSION}`
123124
)
124125
expect(core.exportVariable).toHaveBeenCalledWith(
125126
'BOOT_HOME',

__tests__/entrypoint.test.ts

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ describe('setup-clojure', () => {
4343
jest.resetAllMocks()
4444
inputs = {}
4545
core.getInput.mockImplementation(key => inputs[key])
46+
core.getState.mockImplementation(() => 'main')
4647
})
4748

4849
it('sets up Leiningen', async () => {
@@ -63,18 +64,6 @@ describe('setup-clojure', () => {
6364
expect(boot.setup).toHaveBeenCalledWith('1.2.3', 'token abc')
6465
})
6566

66-
it('throws on Boot setup in Windows', async () => {
67-
inputs['boot'] = '1.2.3'
68-
inputs['github-token'] = 'abc'
69-
utils.isWindows.mockReturnValue(true)
70-
71-
await run()
72-
73-
expect(core.setFailed).toHaveBeenCalledWith(
74-
'Boot on windows is not supported yet.'
75-
)
76-
})
77-
7867
it('sets up Clojure CLI tools from deprecated `tools-deps` option', async () => {
7968
inputs['tools-deps'] = '1.2.3'
8069

0 commit comments

Comments
 (0)