Skip to content

Commit 0f15436

Browse files
authored
Merge pull request #58 from armanbilge/topic/sbt-typelevel
Migrate build to sbt-typelevel
2 parents 229b834 + 647b8ea commit 0f15436

File tree

4 files changed

+53
-50
lines changed

4 files changed

+53
-50
lines changed

Diff for: .github/workflows/ci.yml

+46-26
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,18 @@ name: Continuous Integration
99

1010
on:
1111
pull_request:
12-
branches: ['**']
12+
branches: ['**', '!update/**', '!pr/**']
1313
push:
14-
branches: ['**']
14+
branches: ['**', '!update/**', '!pr/**']
1515
tags: [v*]
1616

1717
env:
18-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
19-
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
18+
PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }}
2019
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
20+
SONATYPE_CREDENTIAL_HOST: ${{ secrets.SONATYPE_CREDENTIAL_HOST }}
21+
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
2122
PGP_SECRET: ${{ secrets.PGP_SECRET }}
23+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2224

2325
jobs:
2426
build:
@@ -27,7 +29,7 @@ jobs:
2729
matrix:
2830
os: [ubuntu-latest]
2931
scala: [2.11.12, 2.12.15, 2.13.7, 3.1.3]
30-
java: [temurin@11]
32+
java: [temurin@8]
3133
ci: [ciNode, ciFirefox, ciChrome, ciJSDOMNodeJS]
3234
runs-on: ${{ matrix.os }}
3335
steps:
@@ -36,12 +38,21 @@ jobs:
3638
with:
3739
fetch-depth: 0
3840

39-
- name: Setup Java (temurin@11)
40-
if: matrix.java == 'temurin@11'
41-
uses: actions/setup-java@v2
41+
- name: Download Java (temurin@8)
42+
id: download-java-temurin-8
43+
if: matrix.java == 'temurin@8'
44+
uses: typelevel/download-java@v1
4245
with:
4346
distribution: temurin
44-
java-version: 11
47+
java-version: 8
48+
49+
- name: Setup Java (temurin@8)
50+
if: matrix.java == 'temurin@8'
51+
uses: actions/setup-java@v2
52+
with:
53+
distribution: jdkfile
54+
java-version: 8
55+
jdkFile: ${{ steps.download-java-temurin-8.outputs.jdkFile }}
4556

4657
- name: Cache sbt
4758
uses: actions/cache@v2
@@ -67,32 +78,41 @@ jobs:
6778
run: npm install
6879

6980
- name: Check that workflows are up to date
70-
run: sbt ++${{ matrix.scala }} githubWorkflowCheck
81+
run: sbt '++${{ matrix.scala }}' 'project /' githubWorkflowCheck
7182

72-
- run: sbt ++${{ matrix.scala }} '${{ matrix.ci }}'
83+
- run: sbt '++${{ matrix.scala }}' '${{ matrix.ci }}'
7384

7485
publish:
7586
name: Publish Artifacts
7687
needs: [build]
77-
if: github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/v'))
88+
if: github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/main')
7889
strategy:
7990
matrix:
8091
os: [ubuntu-latest]
8192
scala: [3.1.3]
82-
java: [temurin@11]
93+
java: [temurin@8]
8394
runs-on: ${{ matrix.os }}
8495
steps:
8596
- name: Checkout current branch (full)
8697
uses: actions/checkout@v2
8798
with:
8899
fetch-depth: 0
89100

90-
- name: Setup Java (temurin@11)
91-
if: matrix.java == 'temurin@11'
92-
uses: actions/setup-java@v2
101+
- name: Download Java (temurin@8)
102+
id: download-java-temurin-8
103+
if: matrix.java == 'temurin@8'
104+
uses: typelevel/download-java@v1
93105
with:
94106
distribution: temurin
95-
java-version: 11
107+
java-version: 8
108+
109+
- name: Setup Java (temurin@8)
110+
if: matrix.java == 'temurin@8'
111+
uses: actions/setup-java@v2
112+
with:
113+
distribution: jdkfile
114+
java-version: 8
115+
jdkFile: ${{ steps.download-java-temurin-8.outputs.jdkFile }}
96116

97117
- name: Cache sbt
98118
uses: actions/cache@v2
@@ -107,15 +127,15 @@ jobs:
107127
key: ${{ runner.os }}-sbt-cache-v2-${{ hashFiles('**/*.sbt') }}-${{ hashFiles('project/build.properties') }}
108128

109129
- name: Import signing key
110-
env:
111-
PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }}
130+
if: env.PGP_SECRET != '' && env.PGP_PASSPHRASE == ''
131+
run: echo $PGP_SECRET | base64 -di | gpg --import
132+
133+
- name: Import signing key and strip passphrase
134+
if: env.PGP_SECRET != '' && env.PGP_PASSPHRASE != ''
112135
run: |
113-
echo "$PGP_SECRET" | base64 -d > /tmp/signing-key.gpg
136+
echo "$PGP_SECRET" | base64 -di > /tmp/signing-key.gpg
114137
echo "$PGP_PASSPHRASE" | gpg --pinentry-mode loopback --passphrase-fd 0 --import /tmp/signing-key.gpg
138+
(echo "$PGP_PASSPHRASE"; echo; echo) | gpg --command-fd 0 --pinentry-mode loopback --change-passphrase $(gpg --list-secret-keys --with-colons 2> /dev/null | grep '^sec:' | cut --delimiter ':' --fields 5 | tail -n 1)
115139
116-
- name: Strip passphrase from signing key
117-
env:
118-
PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }}
119-
run: (echo "$PGP_PASSPHRASE"; echo; echo) | gpg --command-fd 0 --pinentry-mode loopback --change-passphrase 5EBC14B0F6C55083
120-
121-
- run: sbt ++${{ matrix.scala }} release
140+
- name: Publish
141+
run: sbt '++${{ matrix.scala }}' tlRelease

Diff for: build.sbt

+4-21
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ import org.scalajs.jsenv.selenium.SeleniumJSEnv
2424

2525
import java.util.concurrent.TimeUnit
2626

27-
ThisBuild / baseVersion := "1.1"
27+
ThisBuild / tlBaseVersion := "1.1"
2828

2929
ThisBuild / organization := "org.scala-js"
3030
ThisBuild / organizationName := "Scala.js (https://www.scala-js.org/)"
31-
31+
ThisBuild / startYear := Some(2021)
3232
ThisBuild / developers := List(
3333
Developer("djspiewak", "Daniel Spiewak", "@djspiewak", url("https://github.com/djspiewak")),
3434
Developer("armanbilge", "Arman Bilge", "@armanbilge", url("https://github.com/armanbilge")))
@@ -64,34 +64,17 @@ ThisBuild / githubWorkflowBuildMatrixAdditions += "ci" -> ciVariants
6464

6565
ThisBuild / githubWorkflowBuild := Seq(WorkflowStep.Sbt(List("${{ matrix.ci }}")))
6666

67-
replaceCommandAlias("ci", ciVariants.mkString("; ", "; ", ""))
67+
addCommandAlias("ci", ciVariants.mkString("; ", "; ", ""))
6868

69-
addCommandAlias("ciNode", "; set Global / useJSEnv := JSEnv.NodeJS; test; core/doc")
69+
addCommandAlias("ciNode", "; set Global / useJSEnv := JSEnv.NodeJS; test; core/doc; core/mimaReportBinaryIssues; headerCheckAll")
7070
addCommandAlias("ciFirefox", "; set Global / useJSEnv := JSEnv.Firefox; test; set Global / useJSEnv := JSEnv.NodeJS")
7171
addCommandAlias("ciChrome", "; set Global / useJSEnv := JSEnv.Chrome; test; set Global / useJSEnv := JSEnv.NodeJS")
7272
addCommandAlias("ciJSDOMNodeJS", "; set Global / useJSEnv := JSEnv.JSDOMNodeJS; test; set Global / useJSEnv := JSEnv.NodeJS")
7373

7474
// release configuration
7575

76-
enablePlugins(SonatypeCiReleasePlugin)
77-
78-
ThisBuild / spiewakMainBranches := Seq("main")
7976
ThisBuild / githubWorkflowArtifactUpload := false
8077

81-
// we can remove this once we have a non-password-protected key in the secrets
82-
ThisBuild / githubWorkflowPublishPreamble := Seq(
83-
WorkflowStep.Run(
84-
List(
85-
"echo \"$PGP_SECRET\" | base64 -d > /tmp/signing-key.gpg",
86-
"echo \"$PGP_PASSPHRASE\" | gpg --pinentry-mode loopback --passphrase-fd 0 --import /tmp/signing-key.gpg"),
87-
name = Some("Import signing key"),
88-
env = Map("PGP_PASSPHRASE" -> "${{ secrets.PGP_PASSPHRASE }}")),
89-
90-
WorkflowStep.Run(
91-
List("(echo \"$PGP_PASSPHRASE\"; echo; echo) | gpg --command-fd 0 --pinentry-mode loopback --change-passphrase 5EBC14B0F6C55083"),
92-
name = Some("Strip passphrase from signing key"),
93-
env = Map("PGP_PASSPHRASE" -> "${{ secrets.PGP_PASSPHRASE }}")))
94-
9578
// environments
9679

9780
lazy val useJSEnv =

Diff for: project/build.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
sbt.version=1.5.8
1+
sbt.version=1.6.2

Diff for: project/plugins.sbt

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
libraryDependencies += "org.scala-js" %% "scalajs-env-selenium" % "1.1.1"
22
libraryDependencies += "org.scala-js" %% "scalajs-env-jsdom-nodejs" % "1.1.0"
33

4-
addSbtPlugin("com.codecommit" % "sbt-spiewak-sonatype" % "0.23.0")
4+
addSbtPlugin("org.typelevel" % "sbt-typelevel" % "0.4.12")
55
addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.7.1")
6-
addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.10.0")
6+
addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.11.0")

0 commit comments

Comments
 (0)