1
+ # ##################################################################################################
2
+ # ## THIS IS A REUSABLE WORKFLOW TO TEST SCALA WITH MSI RUNNER ###
3
+ # ## HOW TO USE: ###
4
+ # ## Provide optional `version` to test if installed binaries are installed with ###
5
+ # ## correct Scala version. ###
6
+ # ## NOTE: Requires `scala.msi` artifact uploaded within the same run ###
7
+ # ## ###
8
+ # ##################################################################################################
9
+
10
+ name : Test 'scala' MSI Package
11
+ run-name : Test 'scala' (${{ inputs.version }}) MSI Package
12
+
13
+ on :
14
+ workflow_call :
15
+ inputs :
16
+ version :
17
+ required : true
18
+ type : string
19
+ java-version :
20
+ required : true
21
+ type : string
22
+
23
+ jobs :
24
+ test :
25
+ runs-on : windows-latest
26
+ steps :
27
+ - uses : actions/setup-java@v4
28
+ with :
29
+ distribution : temurin
30
+ java-version : ${{ inputs.java-version }}
31
+ - name : Download MSI artifact
32
+ uses : actions/download-artifact@v4
33
+ with :
34
+ name : scala.msi
35
+ path : .
36
+
37
+ # Run the MSI installer
38
+ # During normal installation msiexec would modify the PATH automatically.
39
+ # However, it seems not to work in GH Actions. Append the PATH manually instead.
40
+ - name : Install Scala Runner
41
+ shell : pwsh
42
+ run : |
43
+ Start-Process 'msiexec.exe' -ArgumentList '/I "scala.msi" /L*V "install.log" /qb' -Wait
44
+ Get-Content 'install.log'
45
+ Add-Content $env:GITHUB_PATH "C:\Program Files (x86)\scala\bin"
46
+
47
+ # Run tests to ensure the Scala Runner was installed and works
48
+ - name : Test Scala Runner
49
+ shell : pwsh
50
+ run : |
51
+ scala --version
52
+ if (-not (scala --version | Select-String "Scala version \(default\): ${{ inputs.version }}")) {
53
+ Write-Host "Invalid Scala version of MSI installed runner, expected ${{ inputs.version }}"
54
+ Exit 1
55
+ }
56
+ - name : Test the `scalac` command
57
+ shell : pwsh
58
+ run : |
59
+ scalac --version
60
+ if (-not (scalac --version | Select-String "Scala compiler version ${{ inputs.version }}")) {
61
+ Write-Host "Invalid scalac version of MSI installed runner, expected ${{ inputs.version }}"
62
+ Exit 1
63
+ }
64
+ - name : Test the `scaladoc` command
65
+ shell : pwsh
66
+ run : |
67
+ scaladoc --version
68
+ if (-not (scaladoc --version | Select-String "Scaladoc version ${{ inputs.version }}")) {
69
+ Write-Host "Invalid scaladoc version of MSI installed runner, expected ${{ inputs.version }}"
70
+ Exit 1
71
+ }
72
+ - name : Uninstall the `scala` package
73
+ shell : pwsh
74
+ run : |
75
+ Start-Process 'msiexec.exe' -ArgumentList '/X "scala.msi" /L*V "uninstall.log" /qb' -Wait
76
+ Get-Content 'uninstall.log'
77
+
0 commit comments