Skip to content

Commit 70cf8cf

Browse files
committed
.
1 parent c121a8b commit 70cf8cf

File tree

5 files changed

+304
-24
lines changed

5 files changed

+304
-24
lines changed

.github/workflows/publish-artifacts.yml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,7 @@ jobs:
2121

2222
steps:
2323
- uses: actions/checkout@v3
24-
- uses: actions/setup-java@v3
25-
with:
26-
distribution: 'temurin'
27-
java-version: 11
24+
2825
- name: Publish to Maven Central
2926
run: ./mill -i mill.scalalib.SonatypeCentralPublishModule/
3027

.github/workflows/run-tests.yml

Lines changed: 2 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,8 @@ jobs:
2222
- uses: actions/checkout@v4
2323
with:
2424
fetch-depth: 0
25-
26-
- uses: actions/setup-java@v4
27-
with:
28-
distribution: 'temurin'
29-
java-version: ${{ matrix.java-version }}
30-
- name: Fetch millw launcher (Windows)
31-
run: curl -Lo mill.bat "https://raw.githubusercontent.com/lefou/millw/main/millw.bat"
32-
if: matrix.os == 'windows-latest'
33-
25+
- run: sed -i 's#//| mill-jvm-version: 11#//| mill-jvm-version: ${{ matrix.java }}#' build.mill
26+
shell: bash
3427
- run: ./mill -i -k __.test
3528
if: matrix.os != 'windows-latest'
3629
- run: ./mill.bat -i -k __.jvm.__.test
@@ -43,11 +36,6 @@ jobs:
4336
with:
4437
fetch-depth: 0
4538

46-
- uses: actions/setup-java@v4
47-
with:
48-
distribution: 'temurin'
49-
java-version: 11
50-
5139
- run: ./mill -i -k __.mimaReportBinaryIssues
5240

5341
check-formatting:
@@ -57,9 +45,4 @@ jobs:
5745
with:
5846
fetch-depth: 0
5947

60-
- uses: actions/setup-java@v4
61-
with:
62-
distribution: 'temurin'
63-
java-version: 17
64-
6548
- run: ./mill -i mill.scalalib.scalafmt.ScalafmtModule/checkFormatAll __.sources

.mill-version

Lines changed: 0 additions & 1 deletion
This file was deleted.

build.mill

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
//| mill-version: 1.1.0-RC1
2+
//| mill-jvm-version: 11
13
//| mvnDeps:
24
//| - com.github.lolgab::mill-mima_mill1:0.2.0
35
package build

mill.bat

Lines changed: 299 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,299 @@
1+
@echo off
2+
3+
rem This is a wrapper script, that automatically selects or downloads Mill from Maven Central or GitHub release pages.
4+
rem
5+
rem This script determines the Mill version to use by trying these sources
6+
rem - env-variable `MILL_VERSION`
7+
rem - local file `.mill-version`
8+
rem - local file `.config/mill-version`
9+
rem - `mill-version` from YAML fronmatter of current buildfile
10+
rem - if accessible, find the latest stable version available on Maven Central (https://repo1.maven.org/maven2)
11+
rem - env-variable `DEFAULT_MILL_VERSION`
12+
rem
13+
rem If a version has the suffix '-native' a native binary will be used.
14+
rem If a version has the suffix '-jvm' an executable jar file will be used, requiring an already installed Java runtime.
15+
rem If no such suffix is found, the script will pick a default based on version and platform.
16+
rem
17+
rem Once a version was determined, it tries to use either
18+
rem - a system-installed mill, if found and it's version matches
19+
rem - an already downloaded version under %USERPROFILE%\.mill\download
20+
rem
21+
rem If no working mill version was found on the system,
22+
rem this script downloads a binary file from Maven Central or Github Pages (this is version dependent)
23+
rem into a cache location (%USERPROFILE%\.mill\download).
24+
rem
25+
rem Mill Project URL: https://github.com/com-lihaoyi/mill
26+
rem Script Version: 1.0.0-M1-21-7b6fae-DIRTY892b63e8
27+
rem
28+
rem If you want to improve this script, please also contribute your changes back!
29+
rem This script was generated from: dist/scripts/src/mill.bat
30+
rem
31+
rem Licensed under the Apache License, Version 2.0
32+
33+
rem setlocal seems to be unavailable on Windows 95/98/ME
34+
rem but I don't think we need to support them in 2019
35+
setlocal enabledelayedexpansion
36+
37+
if [!DEFAULT_MILL_VERSION!]==[] ( set "DEFAULT_MILL_VERSION=0.12.10" )
38+
39+
if [!MILL_GITHUB_RELEASE_CDN!]==[] ( set "MILL_GITHUB_RELEASE_CDN=" )
40+
41+
if [!MILL_MAIN_CLI!]==[] ( set "MILL_MAIN_CLI=%~f0" )
42+
43+
set "MILL_REPO_URL=https://github.com/com-lihaoyi/mill"
44+
45+
SET MILL_BUILD_SCRIPT=
46+
47+
if exist "build.mill" (
48+
set MILL_BUILD_SCRIPT=build.mill
49+
) else (
50+
if exist "build.mill.scala" (
51+
set MILL_BUILD_SCRIPT=build.mill.scala
52+
) else (
53+
if exist "build.sc" (
54+
set MILL_BUILD_SCRIPT=build.sc
55+
) else (
56+
rem no-op
57+
)
58+
)
59+
)
60+
61+
if [!MILL_VERSION!]==[] (
62+
if exist .mill-version (
63+
set /p MILL_VERSION=<.mill-version
64+
) else (
65+
if exist .config\mill-version (
66+
set /p MILL_VERSION=<.config\mill-version
67+
) else (
68+
if not "%MILL_BUILD_SCRIPT%"=="" (
69+
for /f "tokens=1-2*" %%a in ('findstr /C:"//| mill-version:" %MILL_BUILD_SCRIPT%') do (
70+
set "MILL_VERSION=%%c"
71+
)
72+
) else (
73+
rem no-op
74+
)
75+
)
76+
)
77+
)
78+
79+
if [!MILL_VERSION!]==[] set MILL_VERSION=%DEFAULT_MILL_VERSION%
80+
81+
if [!MILL_DOWNLOAD_PATH!]==[] set MILL_DOWNLOAD_PATH=%USERPROFILE%\.mill\download
82+
83+
rem without bat file extension, cmd doesn't seem to be able to run it
84+
85+
set "MILL_NATIVE_SUFFIX=-native"
86+
set "MILL_JVM_SUFFIX=-jvm"
87+
set "FULL_MILL_VERSION=%MILL_VERSION%"
88+
set "MILL_EXT=.bat"
89+
set "ARTIFACT_SUFFIX="
90+
REM Check if MILL_VERSION contains MILL_NATIVE_SUFFIX
91+
echo !MILL_VERSION! | findstr /C:"%MILL_NATIVE_SUFFIX%" >nul
92+
if !errorlevel! equ 0 (
93+
set "MILL_VERSION=%MILL_VERSION:-native=%"
94+
REM -native images compiled with graal do not support windows-arm
95+
REM https://github.com/oracle/graal/issues/9215
96+
IF /I NOT "%PROCESSOR_ARCHITECTURE%"=="ARM64" (
97+
set "ARTIFACT_SUFFIX=-native-windows-amd64"
98+
set "MILL_EXT=.exe"
99+
) else (
100+
rem no-op
101+
)
102+
) else (
103+
echo !MILL_VERSION! | findstr /C:"%MILL_JVM_SUFFIX%" >nul
104+
if !errorlevel! equ 0 (
105+
set "MILL_VERSION=%MILL_VERSION:-jvm=%"
106+
) else (
107+
set "SKIP_VERSION=false"
108+
set "MILL_PREFIX=%MILL_VERSION:~0,4%"
109+
if "!MILL_PREFIX!"=="0.1." set "SKIP_VERSION=true"
110+
if "!MILL_PREFIX!"=="0.2." set "SKIP_VERSION=true"
111+
if "!MILL_PREFIX!"=="0.3." set "SKIP_VERSION=true"
112+
if "!MILL_PREFIX!"=="0.4." set "SKIP_VERSION=true"
113+
if "!MILL_PREFIX!"=="0.5." set "SKIP_VERSION=true"
114+
if "!MILL_PREFIX!"=="0.6." set "SKIP_VERSION=true"
115+
if "!MILL_PREFIX!"=="0.7." set "SKIP_VERSION=true"
116+
if "!MILL_PREFIX!"=="0.8." set "SKIP_VERSION=true"
117+
if "!MILL_PREFIX!"=="0.9." set "SKIP_VERSION=true"
118+
set "MILL_PREFIX=%MILL_VERSION:~0,5%"
119+
if "!MILL_PREFIX!"=="0.10." set "SKIP_VERSION=true"
120+
if "!MILL_PREFIX!"=="0.11." set "SKIP_VERSION=true"
121+
if "!MILL_PREFIX!"=="0.12." set "SKIP_VERSION=true"
122+
123+
if "!SKIP_VERSION!"=="false" (
124+
IF /I NOT "%PROCESSOR_ARCHITECTURE%"=="ARM64" (
125+
set "ARTIFACT_SUFFIX=-native-windows-amd64"
126+
set "MILL_EXT=.exe"
127+
)
128+
) else (
129+
rem no-op
130+
)
131+
)
132+
)
133+
134+
set MILL=%MILL_DOWNLOAD_PATH%\!FULL_MILL_VERSION!!MILL_EXT!
135+
136+
set MILL_RESOLVE_DOWNLOAD=
137+
138+
if not exist "%MILL%" (
139+
set MILL_RESOLVE_DOWNLOAD=true
140+
) else (
141+
if defined MILL_TEST_DRY_RUN_LAUNCHER_SCRIPT (
142+
set MILL_RESOLVE_DOWNLOAD=true
143+
) else (
144+
rem no-op
145+
)
146+
)
147+
148+
149+
if [!MILL_RESOLVE_DOWNLOAD!]==[true] (
150+
set MILL_VERSION_PREFIX=%MILL_VERSION:~0,4%
151+
set MILL_SHORT_VERSION_PREFIX=%MILL_VERSION:~0,2%
152+
rem Since 0.5.0
153+
set MILL_DOWNLOAD_SUFFIX=-assembly
154+
rem Since 0.11.0
155+
set MILL_DOWNLOAD_FROM_MAVEN=1
156+
if [!MILL_VERSION_PREFIX!]==[0.0.] (
157+
set MILL_DOWNLOAD_SUFFIX=
158+
set MILL_DOWNLOAD_FROM_MAVEN=0
159+
)
160+
if [!MILL_VERSION_PREFIX!]==[0.1.] (
161+
set MILL_DOWNLOAD_SUFFIX=
162+
set MILL_DOWNLOAD_FROM_MAVEN=0
163+
)
164+
if [!MILL_VERSION_PREFIX!]==[0.2.] (
165+
set MILL_DOWNLOAD_SUFFIX=
166+
set MILL_DOWNLOAD_FROM_MAVEN=0
167+
)
168+
if [!MILL_VERSION_PREFIX!]==[0.3.] (
169+
set MILL_DOWNLOAD_SUFFIX=
170+
set MILL_DOWNLOAD_FROM_MAVEN=0
171+
)
172+
if [!MILL_VERSION_PREFIX!]==[0.4.] (
173+
set MILL_DOWNLOAD_SUFFIX=
174+
set MILL_DOWNLOAD_FROM_MAVEN=0
175+
)
176+
if [!MILL_VERSION_PREFIX!]==[0.5.] set MILL_DOWNLOAD_FROM_MAVEN=0
177+
if [!MILL_VERSION_PREFIX!]==[0.6.] set MILL_DOWNLOAD_FROM_MAVEN=0
178+
if [!MILL_VERSION_PREFIX!]==[0.7.] set MILL_DOWNLOAD_FROM_MAVEN=0
179+
if [!MILL_VERSION_PREFIX!]==[0.8.] set MILL_DOWNLOAD_FROM_MAVEN=0
180+
if [!MILL_VERSION_PREFIX!]==[0.9.] set MILL_DOWNLOAD_FROM_MAVEN=0
181+
182+
set MILL_VERSION_PREFIX=%MILL_VERSION:~0,5%
183+
if [!MILL_VERSION_PREFIX!]==[0.10.] set MILL_DOWNLOAD_FROM_MAVEN=0
184+
185+
set MILL_VERSION_PREFIX=%MILL_VERSION:~0,8%
186+
if [!MILL_VERSION_PREFIX!]==[0.11.0-M] set MILL_DOWNLOAD_FROM_MAVEN=0
187+
188+
set MILL_VERSION_PREFIX=%MILL_VERSION:~0,5%
189+
set DOWNLOAD_EXT=exe
190+
if [!MILL_SHORT_VERSION_PREFIX!]==[0.] set DOWNLOAD_EXT=jar
191+
if [!MILL_VERSION_PREFIX!]==[0.12.] set DOWNLOAD_EXT=exe
192+
if [!MILL_VERSION!]==[0.12.0] set DOWNLOAD_EXT=jar
193+
if [!MILL_VERSION!]==[0.12.1] set DOWNLOAD_EXT=jar
194+
if [!MILL_VERSION!]==[0.12.2] set DOWNLOAD_EXT=jar
195+
if [!MILL_VERSION!]==[0.12.3] set DOWNLOAD_EXT=jar
196+
if [!MILL_VERSION!]==[0.12.4] set DOWNLOAD_EXT=jar
197+
if [!MILL_VERSION!]==[0.12.5] set DOWNLOAD_EXT=jar
198+
if [!MILL_VERSION!]==[0.12.6] set DOWNLOAD_EXT=jar
199+
if [!MILL_VERSION!]==[0.12.7] set DOWNLOAD_EXT=jar
200+
if [!MILL_VERSION!]==[0.12.8] set DOWNLOAD_EXT=jar
201+
if [!MILL_VERSION!]==[0.12.9] set DOWNLOAD_EXT=jar
202+
if [!MILL_VERSION!]==[0.12.10] set DOWNLOAD_EXT=jar
203+
if [!MILL_VERSION!]==[0.12.11] set DOWNLOAD_EXT=jar
204+
205+
set MILL_VERSION_PREFIX=
206+
set MILL_SHORT_VERSION_PREFIX=
207+
208+
for /F "delims=- tokens=1" %%A in ("!MILL_VERSION!") do set MILL_VERSION_BASE=%%A
209+
set MILL_VERSION_MILESTONE=
210+
for /F "delims=- tokens=2" %%A in ("!MILL_VERSION!") do set MILL_VERSION_MILESTONE=%%A
211+
set MILL_VERSION_MILESTONE_START=!MILL_VERSION_MILESTONE:~0,1!
212+
if [!MILL_VERSION_MILESTONE_START!]==[M] (
213+
set MILL_VERSION_TAG=!MILL_VERSION_BASE!-!MILL_VERSION_MILESTONE!
214+
) else (
215+
set MILL_VERSION_TAG=!MILL_VERSION_BASE!
216+
)
217+
if [!MILL_DOWNLOAD_FROM_MAVEN!]==[1] (
218+
set MILL_DOWNLOAD_URL=https://repo1.maven.org/maven2/com/lihaoyi/mill-dist!ARTIFACT_SUFFIX!/!MILL_VERSION!/mill-dist!ARTIFACT_SUFFIX!-!MILL_VERSION!.!DOWNLOAD_EXT!
219+
) else (
220+
set MILL_DOWNLOAD_URL=!MILL_GITHUB_RELEASE_CDN!%MILL_REPO_URL%/releases/download/!MILL_VERSION_TAG!/!MILL_VERSION!!MILL_DOWNLOAD_SUFFIX!
221+
)
222+
223+
if defined MILL_TEST_DRY_RUN_LAUNCHER_SCRIPT (
224+
echo !MILL_DOWNLOAD_URL!
225+
echo !MILL!
226+
exit /b 0
227+
)
228+
229+
rem there seems to be no way to generate a unique temporary file path (on native Windows)
230+
set MILL_DOWNLOAD_FILE=%MILL%.tmp
231+
232+
echo Downloading mill !MILL_VERSION! from !MILL_DOWNLOAD_URL! ... 1>&2
233+
234+
if not exist "%MILL_DOWNLOAD_PATH%" mkdir "%MILL_DOWNLOAD_PATH%"
235+
rem curl is bundled with recent Windows 10
236+
rem but I don't think we can expect all the users to have it in 2019
237+
where /Q curl
238+
if !ERRORLEVEL! EQU 0 (
239+
curl -f -L "!MILL_DOWNLOAD_URL!" -o "!MILL_DOWNLOAD_FILE!"
240+
) else (
241+
rem bitsadmin seems to be available on Windows 7
242+
rem without /dynamic, github returns 403
243+
rem bitsadmin is sometimes needlessly slow but it looks better with /priority foreground
244+
bitsadmin /transfer millDownloadJob /dynamic /priority foreground "!MILL_DOWNLOAD_URL!" "!MILL_DOWNLOAD_FILE!"
245+
)
246+
if not exist "!MILL_DOWNLOAD_FILE!" (
247+
echo Could not download mill !MILL_VERSION! 1>&2
248+
exit /b 1
249+
)
250+
251+
move /y "!MILL_DOWNLOAD_FILE!" "%MILL%"
252+
253+
set MILL_DOWNLOAD_FILE=
254+
set MILL_DOWNLOAD_SUFFIX=
255+
)
256+
257+
set MILL_DOWNLOAD_PATH=
258+
set MILL_VERSION=
259+
set MILL_REPO_URL=
260+
261+
rem Need to preserve the first position of those listed options
262+
set MILL_FIRST_ARG=
263+
if [%~1%]==[--bsp] (
264+
set MILL_FIRST_ARG=%1%
265+
) else (
266+
if [%~1%]==[-i] (
267+
set MILL_FIRST_ARG=%1%
268+
) else (
269+
if [%~1%]==[--interactive] (
270+
set MILL_FIRST_ARG=%1%
271+
) else (
272+
if [%~1%]==[--no-server] (
273+
set MILL_FIRST_ARG=%1%
274+
) else (
275+
if [%~1%]==[--no-daemon] (
276+
set MILL_FIRST_ARG=%1%
277+
) else (
278+
if [%~1%]==[--repl] (
279+
set MILL_FIRST_ARG=%1%
280+
) else (
281+
if [%~1%]==[--help] (
282+
set MILL_FIRST_ARG=%1%
283+
)
284+
)
285+
)
286+
)
287+
)
288+
)
289+
)
290+
set "MILL_PARAMS=%*%"
291+
292+
if not [!MILL_FIRST_ARG!]==[] (
293+
for /f "tokens=1*" %%a in ("%*") do (
294+
set "MILL_PARAMS=%%b"
295+
)
296+
)
297+
298+
rem -D mill.main.cli is for compatibility with Mill 0.10.9 - 0.13.0-M2
299+
"%MILL%" %MILL_FIRST_ARG% -D "mill.main.cli=%MILL_MAIN_CLI%" %MILL_PARAMS%

0 commit comments

Comments
 (0)