Skip to content

Commit ac98511

Browse files
authored
Scala 3.6.x preparations (#313)
Also fixes the test, previously this was testing sbt on the build server instead of the docker image.
1 parent 98aac05 commit ac98511

File tree

6 files changed

+43
-36
lines changed

6 files changed

+43
-36
lines changed

.github/workflows/build.yml

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ jobs:
1515
build:
1616
runs-on: ubuntu-latest
1717
strategy:
18+
fail-fast: false
1819
matrix:
1920
scalaVersion: ['2.12.20', '2.13.15', '3.3.4', '3.5.2']
2021
javaTag: [
@@ -122,19 +123,17 @@ jobs:
122123
SCALA_VERSION=${{ matrix.scalaVersion }}
123124
load: true
124125
- name: Test docker image as root (default)
125-
if: ${{ !startsWith(matrix.scalaVersion, '2.12') }}
126+
if: ${{ !startsWith(matrix.scalaVersion, '2.12') && !contains(matrix.baseImageTag, 'alpine') }}
126127
# scala --version does not work on < 2.13
128+
# sbt --script-version does not work on alpine https://github.com/sbt/sbt/issues/7942
127129
run: |
128-
docker run "${{ steps.create_docker_tag.outputs.TAG }}" \
129-
scala --version &&
130-
sbt about
130+
docker run "${{ steps.create_docker_tag.outputs.TAG }}" /bin/bash -c "scala --version && sbt --script-version"
131131
- name: Test docker image scala as sbtuser
132-
if: ${{ !startsWith(matrix.scalaVersion, '2.12') }}
132+
if: ${{ !startsWith(matrix.scalaVersion, '2.12') && !contains(matrix.baseImageTag, 'alpine') }}
133133
# scala --version does not work on < 2.13
134+
# sbt --script-version does not work on alpine https://github.com/sbt/sbt/issues/7942
134135
run: |
135-
docker run -u sbtuser -w /home/sbtuser "${{ steps.create_docker_tag.outputs.TAG }}" \
136-
scala --version &&
137-
sbt about
136+
docker run -u sbtuser -w /home/sbtuser "${{ steps.create_docker_tag.outputs.TAG }}" /bin/bash -c "scala --version && sbt --script-version"
138137
- name: Log in to DockerHub
139138
if: github.event_name != 'pull_request' && github.actor != 'dependabot[bot]'
140139
uses: docker/login-action@v3

amazoncorretto/Dockerfile

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,18 +35,20 @@ RUN \
3535
# Install Scala
3636
RUN \
3737
case $SCALA_VERSION in \
38-
"3"*) URL=https://github.com/lampepfl/dotty/releases/download/$SCALA_VERSION/scala3-$SCALA_VERSION.tar.gz SCALA_DIR=/usr/share/scala3-$SCALA_VERSION ;; \
39-
*) URL=https://downloads.typesafe.com/scala/$SCALA_VERSION/scala-$SCALA_VERSION.tgz SCALA_DIR=/usr/share/scala-$SCALA_VERSION ;; \
38+
2.*) URL=https://downloads.typesafe.com/scala/$SCALA_VERSION/scala-$SCALA_VERSION.tgz SCALA_DIR=/usr/share/scala-$SCALA_VERSION EXTRACT_DIR=/usr/share ;; \
39+
3.[0-5]*) URL=https://github.com/scala/scala3/releases/download/$SCALA_VERSION/scala3-$SCALA_VERSION.tar.gz SCALA_DIR=/usr/share/scala3-$SCALA_VERSION EXTRACT_DIR=/usr/share ;; \
40+
*) URL=https://github.com/scala/scala3/releases/download/$SCALA_VERSION/scala3-$SCALA_VERSION.tar.gz SCALA_DIR=/usr/share/scala-$SCALA_VERSION EXTRACT_DIR=/usr/share/scala-$SCALA_VERSION ;; \
4041
esac && \
41-
curl -fsL --show-error $URL | tar xfz - -C /usr/share && \
42+
mkdir -p $EXTRACT_DIR && \
43+
curl -fsL --show-error $URL | tar xfz - -C $EXTRACT_DIR && \
4244
mv $SCALA_DIR /usr/share/scala && \
4345
chown -R root:root /usr/share/scala && \
4446
chmod -R 755 /usr/share/scala && \
4547
ln -s /usr/share/scala/bin/* /usr/local/bin && \
4648
mkdir -p /test && \
4749
case $SCALA_VERSION in \
48-
"3"*) echo 'import java.io.FileInputStream;import java.util.jar.JarInputStream;val scala3LibJar = classOf[CanEqual[_, _]].getProtectionDomain.getCodeSource.getLocation.toURI.getPath;val manifest = new JarInputStream(new FileInputStream(scala3LibJar)).getManifest;val ver = manifest.getMainAttributes.getValue("Implementation-Version");@main def main = println(s"Scala version ${ver}")' > /test/test.scala ;; \
49-
*) echo "println(util.Properties.versionMsg)" > /test/test.scala ;; \
50+
2*) echo "println(util.Properties.versionMsg)" > /test/test.scala ;; \
51+
*) echo 'import java.io.FileInputStream;import java.util.jar.JarInputStream;val scala3LibJar = classOf[CanEqual[_, _]].getProtectionDomain.getCodeSource.getLocation.toURI.getPath;val manifest = new JarInputStream(new FileInputStream(scala3LibJar)).getManifest;val ver = manifest.getMainAttributes.getValue("Implementation-Version");@main def main = println(s"Scala version ${ver}")' > /test/test.scala ;; \
5052
esac && \
5153
scala -nocompdaemon test/test.scala && \
5254
rm -fr test

eclipse-temurin/Dockerfile

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,18 +36,20 @@ RUN \
3636
# Install Scala
3737
RUN \
3838
case $SCALA_VERSION in \
39-
"3"*) URL=https://github.com/lampepfl/dotty/releases/download/$SCALA_VERSION/scala3-$SCALA_VERSION.tar.gz SCALA_DIR=/usr/share/scala3-$SCALA_VERSION ;; \
40-
*) URL=https://downloads.typesafe.com/scala/$SCALA_VERSION/scala-$SCALA_VERSION.tgz SCALA_DIR=/usr/share/scala-$SCALA_VERSION ;; \
39+
2.*) URL=https://downloads.typesafe.com/scala/$SCALA_VERSION/scala-$SCALA_VERSION.tgz SCALA_DIR=/usr/share/scala-$SCALA_VERSION EXTRACT_DIR=/usr/share ;; \
40+
3.[0-5]*) URL=https://github.com/scala/scala3/releases/download/$SCALA_VERSION/scala3-$SCALA_VERSION.tar.gz SCALA_DIR=/usr/share/scala3-$SCALA_VERSION EXTRACT_DIR=/usr/share ;; \
41+
*) URL=https://github.com/scala/scala3/releases/download/$SCALA_VERSION/scala3-$SCALA_VERSION.tar.gz SCALA_DIR=/usr/share/scala-$SCALA_VERSION EXTRACT_DIR=/usr/share/scala-$SCALA_VERSION ;; \
4142
esac && \
42-
curl -fsL --show-error $URL | tar xfz - -C /usr/share && \
43+
mkdir -p $EXTRACT_DIR && \
44+
curl -fsL --show-error $URL | tar xfz - -C $EXTRACT_DIR && \
4345
mv $SCALA_DIR /usr/share/scala && \
4446
chown -R root:root /usr/share/scala && \
4547
chmod -R 755 /usr/share/scala && \
4648
ln -s /usr/share/scala/bin/* /usr/local/bin && \
4749
mkdir -p /test && \
4850
case $SCALA_VERSION in \
49-
"3"*) echo 'import java.io.FileInputStream;import java.util.jar.JarInputStream;val scala3LibJar = classOf[CanEqual[_, _]].getProtectionDomain.getCodeSource.getLocation.toURI.getPath;val manifest = new JarInputStream(new FileInputStream(scala3LibJar)).getManifest;val ver = manifest.getMainAttributes.getValue("Implementation-Version");@main def main = println(s"Scala version ${ver}")' > /test/test.scala ;; \
50-
*) echo "println(util.Properties.versionMsg)" > /test/test.scala ;; \
51+
2*) echo "println(util.Properties.versionMsg)" > /test/test.scala ;; \
52+
*) echo 'import java.io.FileInputStream;import java.util.jar.JarInputStream;val scala3LibJar = classOf[CanEqual[_, _]].getProtectionDomain.getCodeSource.getLocation.toURI.getPath;val manifest = new JarInputStream(new FileInputStream(scala3LibJar)).getManifest;val ver = manifest.getMainAttributes.getValue("Implementation-Version");@main def main = println(s"Scala version ${ver}")' > /test/test.scala ;; \
5153
esac && \
5254
scala -nocompdaemon test/test.scala && \
5355
rm -fr test

eclipse-temurin/alpine.Dockerfile

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,19 @@ RUN apk add --no-cache --virtual=.build-dependencies wget ca-certificates bash c
1515
RUN \
1616
cd "/tmp" && \
1717
case $SCALA_VERSION in \
18-
"3"*) URL=https://github.com/lampepfl/dotty/releases/download/$SCALA_VERSION/scala3-$SCALA_VERSION.tar.gz SCALA_DIR=scala3-$SCALA_VERSION ;; \
19-
*) URL=https://downloads.typesafe.com/scala/$SCALA_VERSION/scala-$SCALA_VERSION.tgz SCALA_DIR=scala-$SCALA_VERSION ;; \
18+
2.*) URL=https://downloads.typesafe.com/scala/$SCALA_VERSION/scala-$SCALA_VERSION.tgz SCALA_DIR=/usr/share/scala-$SCALA_VERSION EXTRACT_DIR=/usr/share ;; \
19+
3.[0-5]*) URL=https://github.com/scala/scala3/releases/download/$SCALA_VERSION/scala3-$SCALA_VERSION.tar.gz SCALA_DIR=/usr/share/scala3-$SCALA_VERSION EXTRACT_DIR=/usr/share ;; \
20+
*) URL=https://github.com/scala/scala3/releases/download/$SCALA_VERSION/scala3-$SCALA_VERSION.tar.gz SCALA_DIR=/usr/share/scala-$SCALA_VERSION EXTRACT_DIR=/usr/share/scala-$SCALA_VERSION ;; \
2021
esac && \
21-
curl -fsL --show-error $URL | tar xfz - -C /usr/share && \
22-
mv /usr/share/$SCALA_DIR $SCALA_HOME && \
22+
mkdir -p $EXTRACT_DIR && \
23+
curl -fsL --show-error $URL | tar xfz - -C $EXTRACT_DIR && \
24+
mv $SCALA_DIR $SCALA_HOME && \
2325
ln -s "$SCALA_HOME/bin/"* "/usr/bin/" && \
2426
update-ca-certificates && \
2527
scala -version && \
2628
case $SCALA_VERSION in \
27-
"3"*) echo 'import java.io.FileInputStream;import java.util.jar.JarInputStream;val scala3LibJar = classOf[CanEqual[_, _]].getProtectionDomain.getCodeSource.getLocation.toURI.getPath;val manifest = new JarInputStream(new FileInputStream(scala3LibJar)).getManifest;val ver = manifest.getMainAttributes.getValue("Implementation-Version");@main def main = println(s"Scala version ${ver}")' > test.scala ;; \
28-
*) echo "println(util.Properties.versionMsg)" > test.scala ;; \
29+
2*) echo "println(util.Properties.versionMsg)" > test.scala ;; \
30+
*) echo 'import java.io.FileInputStream;import java.util.jar.JarInputStream;val scala3LibJar = classOf[CanEqual[_, _]].getProtectionDomain.getCodeSource.getLocation.toURI.getPath;val manifest = new JarInputStream(new FileInputStream(scala3LibJar)).getManifest;val ver = manifest.getMainAttributes.getValue("Implementation-Version");@main def main = println(s"Scala version ${ver}")' > test.scala ;; \
2931
esac && \
3032
scala -nocompdaemon test.scala && rm test.scala
3133

graalvm-ce/Dockerfile

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,20 +35,21 @@ RUN \
3535
ln -s /usr/share/sbt/bin/sbt /usr/local/bin/sbt
3636

3737
# Install Scala
38-
## Piping curl directly in tar
3938
RUN \
4039
case $SCALA_VERSION in \
41-
"3"*) URL=https://github.com/lampepfl/dotty/releases/download/$SCALA_VERSION/scala3-$SCALA_VERSION.tar.gz SCALA_DIR=/usr/share/scala3-$SCALA_VERSION ;; \
42-
*) URL=https://downloads.typesafe.com/scala/$SCALA_VERSION/scala-$SCALA_VERSION.tgz SCALA_DIR=/usr/share/scala-$SCALA_VERSION ;; \
40+
2.*) URL=https://downloads.typesafe.com/scala/$SCALA_VERSION/scala-$SCALA_VERSION.tgz SCALA_DIR=/usr/share/scala-$SCALA_VERSION EXTRACT_DIR=/usr/share ;; \
41+
3.[0-5]*) URL=https://github.com/scala/scala3/releases/download/$SCALA_VERSION/scala3-$SCALA_VERSION.tar.gz SCALA_DIR=/usr/share/scala3-$SCALA_VERSION EXTRACT_DIR=/usr/share ;; \
42+
*) URL=https://github.com/scala/scala3/releases/download/$SCALA_VERSION/scala3-$SCALA_VERSION.tar.gz SCALA_DIR=/usr/share/scala-$SCALA_VERSION EXTRACT_DIR=/usr/share/scala-$SCALA_VERSION ;; \
4343
esac && \
44-
curl -fsL --show-error $URL | tar xfz - -C /usr/share && \
44+
mkdir -p $EXTRACT_DIR && \
45+
curl -fsL --show-error $URL | tar xfz - -C $EXTRACT_DIR && \
4546
mv $SCALA_DIR /usr/share/scala && \
4647
chown -R root:root /usr/share/scala && \
4748
chmod -R 755 /usr/share/scala && \
4849
ln -s /usr/share/scala/bin/* /usr/local/bin && \
4950
case $SCALA_VERSION in \
50-
"3"*) echo 'import java.io.FileInputStream;import java.util.jar.JarInputStream;val scala3LibJar = classOf[CanEqual[_, _]].getProtectionDomain.getCodeSource.getLocation.toURI.getPath;val manifest = new JarInputStream(new FileInputStream(scala3LibJar)).getManifest;val ver = manifest.getMainAttributes.getValue("Implementation-Version");@main def main = println(s"Scala version ${ver}")' > test.scala ;; \
51-
*) echo "println(util.Properties.versionMsg)" > test.scala ;; \
51+
2*) echo "println(util.Properties.versionMsg)" > test.scala ;; \
52+
*) echo 'import java.io.FileInputStream;import java.util.jar.JarInputStream;val scala3LibJar = classOf[CanEqual[_, _]].getProtectionDomain.getCodeSource.getLocation.toURI.getPath;val manifest = new JarInputStream(new FileInputStream(scala3LibJar)).getManifest;val ver = manifest.getMainAttributes.getValue("Implementation-Version");@main def main = println(s"Scala version ${ver}")' > test.scala ;; \
5253
esac && \
5354
scala -nocompdaemon test.scala && rm test.scala
5455

graalvm-community/Dockerfile

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,20 +35,21 @@ RUN \
3535
ln -s /usr/share/sbt/bin/sbt /usr/local/bin/sbt
3636

3737
# Install Scala
38-
## Piping curl directly in tar
3938
RUN \
4039
case $SCALA_VERSION in \
41-
"3"*) URL=https://github.com/lampepfl/dotty/releases/download/$SCALA_VERSION/scala3-$SCALA_VERSION.tar.gz SCALA_DIR=/usr/share/scala3-$SCALA_VERSION ;; \
42-
*) URL=https://downloads.typesafe.com/scala/$SCALA_VERSION/scala-$SCALA_VERSION.tgz SCALA_DIR=/usr/share/scala-$SCALA_VERSION ;; \
40+
2.*) URL=https://downloads.typesafe.com/scala/$SCALA_VERSION/scala-$SCALA_VERSION.tgz SCALA_DIR=/usr/share/scala-$SCALA_VERSION EXTRACT_DIR=/usr/share ;; \
41+
3.[0-5]*) URL=https://github.com/scala/scala3/releases/download/$SCALA_VERSION/scala3-$SCALA_VERSION.tar.gz SCALA_DIR=/usr/share/scala3-$SCALA_VERSION EXTRACT_DIR=/usr/share ;; \
42+
*) URL=https://github.com/scala/scala3/releases/download/$SCALA_VERSION/scala3-$SCALA_VERSION.tar.gz SCALA_DIR=/usr/share/scala-$SCALA_VERSION EXTRACT_DIR=/usr/share/scala-$SCALA_VERSION ;; \
4343
esac && \
44-
curl -fsL --show-error $URL | tar xfz - -C /usr/share && \
44+
mkdir -p $EXTRACT_DIR && \
45+
curl -fsL --show-error $URL | tar xfz - -C $EXTRACT_DIR && \
4546
mv $SCALA_DIR /usr/share/scala && \
4647
chown -R root:root /usr/share/scala && \
4748
chmod -R 755 /usr/share/scala && \
4849
ln -s /usr/share/scala/bin/* /usr/local/bin && \
4950
case $SCALA_VERSION in \
50-
"3"*) echo 'import java.io.FileInputStream;import java.util.jar.JarInputStream;val scala3LibJar = classOf[CanEqual[_, _]].getProtectionDomain.getCodeSource.getLocation.toURI.getPath;val manifest = new JarInputStream(new FileInputStream(scala3LibJar)).getManifest;val ver = manifest.getMainAttributes.getValue("Implementation-Version");@main def main = println(s"Scala version ${ver}")' > test.scala ;; \
51-
*) echo "println(util.Properties.versionMsg)" > test.scala ;; \
51+
2*) echo "println(util.Properties.versionMsg)" > test.scala ;; \
52+
*) echo 'import java.io.FileInputStream;import java.util.jar.JarInputStream;val scala3LibJar = classOf[CanEqual[_, _]].getProtectionDomain.getCodeSource.getLocation.toURI.getPath;val manifest = new JarInputStream(new FileInputStream(scala3LibJar)).getManifest;val ver = manifest.getMainAttributes.getValue("Implementation-Version");@main def main = println(s"Scala version ${ver}")' > test.scala ;; \
5253
esac && \
5354
scala -nocompdaemon test.scala && rm test.scala
5455

0 commit comments

Comments
 (0)