Skip to content

Commit

Permalink
Merge branch 'main' into setup-java-cache
Browse files Browse the repository at this point in the history
  • Loading branch information
armanbilge committed Oct 21, 2022
2 parents b496145 + be4f759 commit 661d02c
Show file tree
Hide file tree
Showing 50 changed files with 1,322 additions and 522 deletions.
2 changes: 2 additions & 0 deletions .git-blame-ignore-revs
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Scala Steward: Reformat with scalafmt 3.5.9
3f68700f419dd89fb7402fddcaafcc1659c6812f
131 changes: 119 additions & 12 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ name: Continuous Integration

on:
pull_request:
branches: ['**']
branches: ['**', '!update/**', '!pr/**']
push:
branches: ['**']
branches: ['**', '!update/**', '!pr/**']
tags: [v*]

env:
Expand All @@ -23,8 +23,8 @@ jobs:
strategy:
matrix:
os: [ubuntu-latest]
scala: [2.12.15]
java: [temurin@8]
scala: [2.12.17]
java: [temurin@8, temurin@17]
project: [sbt-typelevelJVM]
runs-on: ${{ matrix.os }}
steps:
Expand All @@ -50,8 +50,25 @@ jobs:
jdkFile: ${{ steps.download-java-temurin-8.outputs.jdkFile }}
cache: sbt

- name: Download Java (temurin@17)
id: download-java-temurin-17
if: matrix.java == 'temurin@17'
uses: typelevel/download-java@v2
with:
distribution: temurin
java-version: 17

- name: Setup Java (temurin@17)
if: matrix.java == 'temurin@17'
uses: actions/setup-java@v3
with:
distribution: jdkfile
java-version: 17
jdkFile: ${{ steps.download-java-temurin-17.outputs.jdkFile }}
cache: sbt

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

- name: Check headers and formatting
if: matrix.java == 'temurin@8'
Expand All @@ -60,6 +77,10 @@ jobs:
- name: Test
run: sbt 'project ${{ matrix.project }}' '++${{ matrix.scala }}' test

- name: Check scalafix lints
if: matrix.java == 'temurin@8'
run: sbt 'project ${{ matrix.project }}' '++${{ matrix.scala }}' 'scalafixAll --check'

- name: Check binary compatibility
if: matrix.java == 'temurin@8'
run: sbt 'project ${{ matrix.project }}' '++${{ matrix.scala }}' mimaReportBinaryIssues
Expand All @@ -70,11 +91,11 @@ jobs:

- name: Make target directories
if: github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/main')
run: mkdir -p github/target github-actions/target kernel/target versioning/target ci-release/target .jvm/target mdocs/target site/target ci-signing/target mergify/target unidoc/target .native/target mima/target no-publish/target sonatype/target ci/target sonatype-ci-release/target core/target settings/target target .js/target project/target
run: mkdir -p github/target github-actions/target kernel/target versioning/target ci-release/target scalafix/target .jvm/target mdocs/target site/target ci-signing/target mergify/target unidoc/target .native/target mima/target no-publish/target sonatype/target ci/target sonatype-ci-release/target core/target settings/target target .js/target project/target

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

- name: Upload target directories
if: github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/main')
Expand All @@ -90,7 +111,7 @@ jobs:
strategy:
matrix:
os: [ubuntu-latest]
scala: [2.12.15]
scala: [2.12.17]
java: [temurin@8]
runs-on: ${{ matrix.os }}
steps:
Expand All @@ -116,12 +137,29 @@ jobs:
jdkFile: ${{ steps.download-java-temurin-8.outputs.jdkFile }}
cache: sbt

- name: Download target directories (2.12.15, sbt-typelevelJVM)
- name: Download Java (temurin@17)
id: download-java-temurin-17
if: matrix.java == 'temurin@17'
uses: typelevel/download-java@v2
with:
distribution: temurin
java-version: 17

- name: Setup Java (temurin@17)
if: matrix.java == 'temurin@17'
uses: actions/setup-java@v3
with:
distribution: jdkfile
java-version: 17
jdkFile: ${{ steps.download-java-temurin-17.outputs.jdkFile }}
cache: sbt

- name: Download target directories (2.12.17, sbt-typelevelJVM)
uses: actions/download-artifact@v3
with:
name: target-${{ matrix.os }}-${{ matrix.java }}-2.12.15-sbt-typelevelJVM
name: target-${{ matrix.os }}-${{ matrix.java }}-2.12.17-sbt-typelevelJVM

- name: Inflate target directories (2.12.15, sbt-typelevelJVM)
- name: Inflate target directories (2.12.17, sbt-typelevelJVM)
run: |
tar xf targets.tar
rm targets.tar
Expand Down Expand Up @@ -150,12 +188,64 @@ jobs:
SONATYPE_CREDENTIAL_HOST: ${{ secrets.SONATYPE_CREDENTIAL_HOST }}
run: sbt '++${{ matrix.scala }}' tlRelease

dependency-submission:
name: Submit Dependencies
if: github.event_name != 'pull_request'
strategy:
matrix:
os: [ubuntu-latest]
scala: [2.12.17]
java: [temurin@8]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout current branch (full)
uses: actions/checkout@v3
with:
fetch-depth: 0

- name: Download Java (temurin@8)
id: download-java-temurin-8
if: matrix.java == 'temurin@8'
uses: typelevel/download-java@v2
with:
distribution: temurin
java-version: 8

- name: Setup Java (temurin@8)
if: matrix.java == 'temurin@8'
uses: actions/setup-java@v3
with:
distribution: jdkfile
java-version: 8
jdkFile: ${{ steps.download-java-temurin-8.outputs.jdkFile }}
cache: sbt

- name: Download Java (temurin@17)
id: download-java-temurin-17
if: matrix.java == 'temurin@17'
uses: typelevel/download-java@v2
with:
distribution: temurin
java-version: 17

- name: Setup Java (temurin@17)
if: matrix.java == 'temurin@17'
uses: actions/setup-java@v3
with:
distribution: jdkfile
java-version: 17
jdkFile: ${{ steps.download-java-temurin-17.outputs.jdkFile }}
cache: sbt

- name: Submit Dependencies
uses: scalacenter/sbt-dependency-submission@v2

site:
name: Generate Site
strategy:
matrix:
os: [ubuntu-latest]
scala: [2.12.15]
scala: [2.12.17]
java: [temurin@8]
runs-on: ${{ matrix.os }}
steps:
Expand All @@ -181,6 +271,23 @@ jobs:
jdkFile: ${{ steps.download-java-temurin-8.outputs.jdkFile }}
cache: sbt

- name: Download Java (temurin@17)
id: download-java-temurin-17
if: matrix.java == 'temurin@17'
uses: typelevel/download-java@v2
with:
distribution: temurin
java-version: 17

- name: Setup Java (temurin@17)
if: matrix.java == 'temurin@17'
uses: actions/setup-java@v3
with:
distribution: jdkfile
java-version: 17
jdkFile: ${{ steps.download-java-temurin-17.outputs.jdkFile }}
cache: sbt

- name: Generate site
run: sbt '++${{ matrix.scala }}' docs/tlSite

Expand Down
20 changes: 18 additions & 2 deletions .mergify.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,12 @@
pull_request_rules:
- name: merge scala-steward's PRs
conditions:
- author=scala-steward
- author=typelevel-steward[bot]
- or:
- body~=labels:.*early-semver-patch
- body~=labels:.*early-semver-minor
- status-success=Build and Test (ubuntu-latest, 2.12.15, temurin@8, sbt-typelevelJVM)
- status-success=Build and Test (ubuntu-latest, 2.12.17, temurin@8, sbt-typelevelJVM)
- status-success=Build and Test (ubuntu-latest, 2.12.17, temurin@17, sbt-typelevelJVM)
- '#approved-reviews-by>=1'
actions:
merge: {}
Expand Down Expand Up @@ -112,6 +113,14 @@ pull_request_rules:
add:
- no-publish
remove: []
- name: Label scalafix PRs
conditions:
- files~=^scalafix/
actions:
label:
add:
- scalafix
remove: []
- name: Label settings PRs
conditions:
- files~=^settings/
Expand Down Expand Up @@ -160,3 +169,10 @@ pull_request_rules:
add:
- versioning
remove: []
- name: assign scala-steward's PRs for review
conditions:
- author=typelevel-steward[bot]
actions:
request_reviews:
users:
- armanbilge
3 changes: 3 additions & 0 deletions .scalafix.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
rules = [
OrganizeImports
]
2 changes: 1 addition & 1 deletion .scalafmt.conf
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
version = 3.5.2
version = 3.5.9

runner.dialect = scala212source3

Expand Down
59 changes: 55 additions & 4 deletions build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,34 @@ name := "sbt-typelevel"

ThisBuild / tlBaseVersion := "0.5"
ThisBuild / tlSitePublishBranch := Some("series/0.4")
ThisBuild / crossScalaVersions := Seq("2.12.15")
ThisBuild / crossScalaVersions := Seq("2.12.17")
ThisBuild / developers ++= List(
tlGitHubDev("armanbilge", "Arman Bilge"),
tlGitHubDev("rossabaker", "Ross A. Baker"),
tlGitHubDev("ChristopherDavenport", "Christopher Davenport"),
tlGitHubDev("djspiewak", "Daniel Spiewak")
)

ThisBuild / mergifyStewardConfig ~= { _.map(_.copy(mergeMinors = true)) }
ThisBuild / githubWorkflowJavaVersions += JavaSpec.temurin("17")

ThisBuild / mergifyStewardConfig ~= {
_.map(_.copy(mergeMinors = true, author = "typelevel-steward[bot]"))
}
ThisBuild / mergifySuccessConditions += MergifyCondition.Custom("#approved-reviews-by>=1")
ThisBuild / mergifyLabelPaths += { "docs" -> file("docs") }
ThisBuild / mergifyPrRules += MergifyPrRule(
"assign scala-steward's PRs for review",
List(MergifyCondition.Custom("author=typelevel-steward[bot]")),
List(
MergifyAction.RequestReviews.fromUsers("armanbilge")
)
)

ThisBuild / scalafixDependencies ++= Seq(
"com.github.liancheng" %% "organize-imports" % "0.6.0"
)

val MunitVersion = "0.7.29"

lazy val `sbt-typelevel` = tlCrossRootProject.aggregate(
kernel,
Expand All @@ -24,6 +41,7 @@ lazy val `sbt-typelevel` = tlCrossRootProject.aggregate(
versioning,
mima,
sonatype,
scalafix,
ciSigning,
sonatypeCiRelease,
ci,
Expand All @@ -38,7 +56,8 @@ lazy val kernel = project
.in(file("kernel"))
.enablePlugins(SbtPlugin)
.settings(
name := "sbt-typelevel-kernel"
name := "sbt-typelevel-kernel",
libraryDependencies += "org.scalameta" %% "munit" % MunitVersion % Test
)

lazy val noPublish = project
Expand Down Expand Up @@ -104,6 +123,14 @@ lazy val sonatype = project
)
.dependsOn(kernel)

lazy val scalafix = project
.in(file("scalafix"))
.enablePlugins(SbtPlugin)
.settings(
name := "sbt-typelevel-scalafix",
tlVersionIntroduced := Map("2.12" -> "0.4.10")
)

lazy val ciSigning = project
.in(file("ci-signing"))
.enablePlugins(SbtPlugin)
Expand Down Expand Up @@ -184,5 +211,29 @@ lazy val docs = project
"mdoc" -> url("https://scalameta.org/mdoc/"),
"Laika" -> url("https://planet42.github.io/Laika/"),
"sbt-unidoc" -> url("https://github.com/sbt/sbt-unidoc")
)
),
tlSiteIsTypelevelProject := true,
mdocVariables ++= {
import coursier.complete.Complete
import java.time._
import scala.concurrent._
import scala.concurrent.duration._
import scala.concurrent.ExecutionContext.Implicits._

val startYear = YearMonth.now().getYear.toString

val sjsVersionFuture =
Complete().withInput(s"org.scala-js:scalajs-library_2.13:").complete().future()
val sjsVersion =
try {
Await.result(sjsVersionFuture, 5.seconds)._2.last
} catch {
case ex: TimeoutException => scalaJSVersion // not the latest but better than nothing
}

Map(
"START_YEAR" -> startYear,
"LATEST_SJS_VERSION" -> sjsVersion
)
}
)
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,12 @@
package org.typelevel.sbt

import io.crashbox.gpg.SbtGpg
import sbt._, Keys._
import org.typelevel.sbt.gha.GenerativePlugin
import org.typelevel.sbt.gha.GitHubActionsPlugin
import org.typelevel.sbt.gha.GenerativePlugin.autoImport._
import org.typelevel.sbt.gha.GitHubActionsPlugin
import sbt._

import Keys._

object TypelevelCiSigningPlugin extends AutoPlugin {

Expand Down
2 changes: 1 addition & 1 deletion ci/build.sbt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
addSbtPlugin("com.typesafe" % "sbt-mima-plugin" % "1.1.0")
addSbtPlugin("com.typesafe" % "sbt-mima-plugin" % "1.1.1")
2 changes: 1 addition & 1 deletion ci/src/main/scala/org/typelevel/sbt/CrossRootProject.scala
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@

package org.typelevel.sbt

import sbt._
import org.typelevel.sbt.gha.GenerativePlugin.autoImport._
import sbt._

/**
* Simultaneously creates a root project, a Scala JVM aggregate project, a Scala.js aggregate
Expand Down

0 comments on commit 661d02c

Please sign in to comment.