Skip to content

Commit caa5440

Browse files
authored
Merge pull request #541 from typelevel/pr/oses
Add macos and windows to ci
2 parents 6679818 + 81efcde commit caa5440

File tree

4 files changed

+69
-7
lines changed

4 files changed

+69
-7
lines changed

.github/workflows/ci.yml

Lines changed: 48 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ jobs:
2727
name: Build and Test
2828
strategy:
2929
matrix:
30-
os: [ubuntu-latest]
30+
os: [ubuntu-latest, macos-latest, windows-latest]
3131
scala: [2.12]
3232
java:
3333
- temurin@8
@@ -36,9 +36,31 @@ jobs:
3636
- graalvm@17
3737
- corretto@17
3838
project: [sbt-typelevelJVM]
39+
exclude:
40+
- java: temurin@11
41+
os: macos-latest
42+
- java: temurin@11
43+
os: windows-latest
44+
- java: temurin@17
45+
os: macos-latest
46+
- java: temurin@17
47+
os: windows-latest
48+
- java: graalvm@17
49+
os: macos-latest
50+
- java: graalvm@17
51+
os: windows-latest
52+
- java: corretto@17
53+
os: macos-latest
54+
- java: corretto@17
55+
os: windows-latest
3956
runs-on: ${{ matrix.os }}
4057
timeout-minutes: 60
4158
steps:
59+
- name: Ignore line ending differences in git
60+
if: contains(runner.os, 'windows')
61+
shell: bash
62+
run: git config --global core.autocrlf false
63+
4264
- name: Checkout current branch (full)
4365
uses: actions/checkout@v3
4466
with:
@@ -55,6 +77,7 @@ jobs:
5577

5678
- name: sbt update
5779
if: matrix.java == 'temurin@8' && steps.setup-java-temurin-8.outputs.cache-hit == 'false'
80+
shell: bash
5881
run: sbt 'project ${{ matrix.project }}' '++ ${{ matrix.scala }}' reload +update
5982

6083
- name: Setup Java (temurin@11)
@@ -68,6 +91,7 @@ jobs:
6891

6992
- name: sbt update
7093
if: matrix.java == 'temurin@11' && steps.setup-java-temurin-11.outputs.cache-hit == 'false'
94+
shell: bash
7195
run: sbt 'project ${{ matrix.project }}' '++ ${{ matrix.scala }}' reload +update
7296

7397
- name: Setup Java (temurin@17)
@@ -81,6 +105,7 @@ jobs:
81105

82106
- name: sbt update
83107
if: matrix.java == 'temurin@17' && steps.setup-java-temurin-17.outputs.cache-hit == 'false'
108+
shell: bash
84109
run: sbt 'project ${{ matrix.project }}' '++ ${{ matrix.scala }}' reload +update
85110

86111
- name: Setup Java (graalvm@17)
@@ -94,6 +119,7 @@ jobs:
94119

95120
- name: sbt update
96121
if: matrix.java == 'graalvm@17' && steps.setup-java-graalvm-17.outputs.cache-hit == 'false'
122+
shell: bash
97123
run: sbt 'project ${{ matrix.project }}' '++ ${{ matrix.scala }}' reload +update
98124

99125
- name: Setup Java (corretto@17)
@@ -107,36 +133,45 @@ jobs:
107133

108134
- name: sbt update
109135
if: matrix.java == 'corretto@17' && steps.setup-java-corretto-17.outputs.cache-hit == 'false'
136+
shell: bash
110137
run: sbt 'project ${{ matrix.project }}' '++ ${{ matrix.scala }}' reload +update
111138

112139
- name: Check that workflows are up to date
140+
shell: bash
113141
run: sbt githubWorkflowCheck
114142

115143
- name: Check headers and formatting
116144
if: matrix.java == 'temurin@8' && matrix.os == 'ubuntu-latest'
145+
shell: bash
117146
run: sbt 'project ${{ matrix.project }}' '++ ${{ matrix.scala }}' headerCheckAll scalafmtCheckAll 'project /' scalafmtSbtCheck
118147

119148
- name: Check scalafix lints
120149
if: matrix.java == 'temurin@8' && matrix.os == 'ubuntu-latest'
150+
shell: bash
121151
run: sbt 'project ${{ matrix.project }}' '++ ${{ matrix.scala }}' 'scalafixAll --check'
122152

123153
- name: Test
154+
shell: bash
124155
run: sbt 'project ${{ matrix.project }}' '++ ${{ matrix.scala }}' test
125156

126157
- name: Check binary compatibility
127158
if: matrix.java == 'temurin@8' && matrix.os == 'ubuntu-latest'
159+
shell: bash
128160
run: sbt 'project ${{ matrix.project }}' '++ ${{ matrix.scala }}' mimaReportBinaryIssues
129161

130162
- name: Generate API documentation
131163
if: matrix.java == 'temurin@8' && matrix.os == 'ubuntu-latest'
164+
shell: bash
132165
run: sbt 'project ${{ matrix.project }}' '++ ${{ matrix.scala }}' doc
133166

134167
- name: Make target directories
135168
if: github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/main')
169+
shell: bash
136170
run: mkdir -p github/target github-actions/target kernel/target versioning/target ci-release/target scalafix/target site/target ci-signing/target mergify/target unidoc/target mima/target no-publish/target sonatype/target ci/target sonatype-ci-release/target core/target settings/target project/target
137171

138172
- name: Compress target directories
139173
if: github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/main')
174+
shell: bash
140175
run: tar cf targets.tar github/target github-actions/target kernel/target versioning/target ci-release/target scalafix/target site/target ci-signing/target mergify/target unidoc/target mima/target no-publish/target sonatype/target ci/target sonatype-ci-release/target core/target settings/target project/target
141176

142177
- name: Upload target directories
@@ -157,6 +192,10 @@ jobs:
157192
runs-on: ${{ matrix.os }}
158193
timeout-minutes: 45
159194
steps:
195+
- name: Ignore line ending differences in git
196+
if: contains(runner.os, 'windows')
197+
run: git config --global core.autocrlf false
198+
160199
- name: Checkout current branch (full)
161200
uses: actions/checkout@v3
162201
with:
@@ -270,6 +309,10 @@ jobs:
270309
java: [temurin@8]
271310
runs-on: ${{ matrix.os }}
272311
steps:
312+
- name: Ignore line ending differences in git
313+
if: contains(runner.os, 'windows')
314+
run: git config --global core.autocrlf false
315+
273316
- name: Checkout current branch (full)
274317
uses: actions/checkout@v3
275318
with:
@@ -370,6 +413,10 @@ jobs:
370413
java: [temurin@8]
371414
runs-on: ${{ matrix.os }}
372415
steps:
416+
- name: Ignore line ending differences in git
417+
if: contains(runner.os, 'windows')
418+
run: git config --global core.autocrlf false
419+
373420
- name: Checkout current branch (full)
374421
uses: actions/checkout@v3
375422
with:

.mergify.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ pull_request_rules:
1717
- status-success=Build and Test (ubuntu-latest, 2.12, temurin@17, sbt-typelevelJVM)
1818
- status-success=Build and Test (ubuntu-latest, 2.12, graalvm@17, sbt-typelevelJVM)
1919
- status-success=Build and Test (ubuntu-latest, 2.12, corretto@17, sbt-typelevelJVM)
20+
- status-success=Build and Test (macos-latest, 2.12, temurin@8, sbt-typelevelJVM)
21+
- status-success=Build and Test (windows-latest, 2.12, temurin@8, sbt-typelevelJVM)
2022
- status-success=Validate Steward Config (ubuntu-latest)
2123
- status-success=Generate Site (ubuntu-latest, temurin@8)
2224
- '#approved-reviews-by>=1'

build.sbt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,15 @@ ThisBuild / githubWorkflowJavaVersions ++= Seq(
1818
JavaSpec.corretto("17")
1919
)
2020

21+
ThisBuild / githubWorkflowOSes ++= Seq("macos-latest", "windows-latest")
22+
23+
ThisBuild / githubWorkflowBuildMatrixExclusions ++= {
24+
for {
25+
java <- githubWorkflowJavaVersions.value.tail
26+
os <- githubWorkflowOSes.value.tail
27+
} yield MatrixExclude(Map("java" -> java.render, "os" -> os))
28+
}
29+
2130
ThisBuild / githubWorkflowPublishTimeoutMinutes := Some(45)
2231

2332
ThisBuild / mergifyStewardConfig ~= {

site/src/main/scala/org/typelevel/sbt/TypelevelSitePlugin.scala

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -168,12 +168,16 @@ object TypelevelSitePlugin extends AutoPlugin {
168168
UseRef.Public("peaceiris", "actions-gh-pages", "v3.9.3"),
169169
Map(
170170
"github_token" -> s"$${{ secrets.GITHUB_TOKEN }}",
171-
"publish_dir" -> (ThisBuild / baseDirectory)
172-
.value
173-
.toPath
174-
.toAbsolutePath
175-
.relativize((laikaSite / target).value.toPath)
176-
.toString,
171+
"publish_dir" -> {
172+
val path = (ThisBuild / baseDirectory)
173+
.value
174+
.toPath
175+
.toAbsolutePath
176+
.relativize((laikaSite / target).value.toPath)
177+
178+
// os-independent path rendering ...
179+
(0 until path.getNameCount).map(path.getName).mkString("/")
180+
},
177181
"keep_files" -> tlSiteKeepFiles.value.toString
178182
),
179183
name = Some("Publish site"),

0 commit comments

Comments
 (0)