Skip to content

Commit

Permalink
Merge pull request typelevel#2819 from armanbilge/topic/sbt-typelevel…
Browse files Browse the repository at this point in the history
…-site

Use sbt-typelevel-site plugin to build/publish microsite
  • Loading branch information
mpilquist authored Feb 19, 2022
2 parents 45dab3c + 1739e7f commit 6b4be66
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 111 deletions.
92 changes: 28 additions & 64 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -85,16 +85,13 @@ jobs:
cd scalafix
sbt testCI
- if: matrix.scala == '2.13.8' && matrix.project == 'rootJVM'
run: sbt 'project ${{ matrix.project }}' '++${{ matrix.scala }}' microsite/mdoc

- name: Make target directories
if: github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/main' || github.ref == 'refs/heads/series/2.5.x')
run: mkdir -p target node/js/target protocols/js/target .js/target core/js/target core/jvm/target .jvm/target .native/target scodec/jvm/target scodec/js/target io/js/target reactive-streams/target io/jvm/target protocols/jvm/target benchmark/target project/target
run: mkdir -p target node/js/target protocols/js/target .js/target core/js/target mdoc/target core/jvm/target .jvm/target .native/target scodec/jvm/target scodec/js/target io/js/target reactive-streams/target io/jvm/target protocols/jvm/target benchmark/target project/target

- name: Compress target directories
if: github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/main' || github.ref == 'refs/heads/series/2.5.x')
run: tar cf targets.tar target node/js/target protocols/js/target .js/target core/js/target core/jvm/target .jvm/target .native/target scodec/jvm/target scodec/js/target io/js/target reactive-streams/target io/jvm/target protocols/jvm/target benchmark/target project/target
run: tar cf targets.tar target node/js/target protocols/js/target .js/target core/js/target mdoc/target core/jvm/target .jvm/target .native/target scodec/jvm/target scodec/js/target io/js/target reactive-streams/target io/jvm/target protocols/jvm/target benchmark/target project/target

- name: Upload target directories
if: github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/main' || github.ref == 'refs/heads/series/2.5.x')
Expand Down Expand Up @@ -213,78 +210,45 @@ jobs:
run: sbt '++${{ matrix.scala }}' tlRelease

site:
name: Deploy site
needs: [publish]
if: always() && needs.build.result == 'success' && (needs.publish.result == 'success' && github.ref == 'refs/heads/main')
name: Generate Site
strategy:
matrix:
os: [ubuntu-latest]
scala: [2.13.8]
java: [temurin@17]
runs-on: ${{ matrix.os }}
steps:
- name: Download target directories (3.1.1, rootJS)
uses: actions/download-artifact@v2
with:
name: target-${{ matrix.os }}-${{ matrix.java }}-3.1.1-rootJS

- name: Inflate target directories (3.1.1, rootJS)
run: |
tar xf targets.tar
rm targets.tar
- name: Download target directories (3.1.1, rootJVM)
uses: actions/download-artifact@v2
with:
name: target-${{ matrix.os }}-${{ matrix.java }}-3.1.1-rootJVM

- name: Inflate target directories (3.1.1, rootJVM)
run: |
tar xf targets.tar
rm targets.tar
- name: Download target directories (2.12.15, rootJS)
uses: actions/download-artifact@v2
with:
name: target-${{ matrix.os }}-${{ matrix.java }}-2.12.15-rootJS

- name: Inflate target directories (2.12.15, rootJS)
run: |
tar xf targets.tar
rm targets.tar
- name: Download target directories (2.12.15, rootJVM)
uses: actions/download-artifact@v2
- name: Checkout current branch (full)
uses: actions/checkout@v2
with:
name: target-${{ matrix.os }}-${{ matrix.java }}-2.12.15-rootJVM

- name: Inflate target directories (2.12.15, rootJVM)
run: |
tar xf targets.tar
rm targets.tar
fetch-depth: 0

- name: Download target directories (2.13.8, rootJS)
uses: actions/download-artifact@v2
- name: Setup Java (temurin@17)
if: matrix.java == 'temurin@17'
uses: actions/setup-java@v2
with:
name: target-${{ matrix.os }}-${{ matrix.java }}-2.13.8-rootJS

- name: Inflate target directories (2.13.8, rootJS)
run: |
tar xf targets.tar
rm targets.tar
distribution: temurin
java-version: 17

- name: Download target directories (2.13.8, rootJVM)
uses: actions/download-artifact@v2
- name: Cache sbt
uses: actions/cache@v2
with:
name: target-${{ matrix.os }}-${{ matrix.java }}-2.13.8-rootJVM
path: |
~/.sbt
~/.ivy2/cache
~/.coursier/cache/v1
~/.cache/coursier/v1
~/AppData/Local/Coursier/Cache/v1
~/Library/Caches/Coursier/v1
key: ${{ runner.os }}-sbt-cache-v2-${{ hashFiles('**/*.sbt') }}-${{ hashFiles('project/build.properties') }}

- name: Inflate target directories (2.13.8, rootJVM)
run: |
tar xf targets.tar
rm targets.tar
- name: Generate site
run: sbt '++${{ matrix.scala }}' microsite/tlSite

- name: Deploy site
uses: peaceiris/actions-gh-pages@v3
- name: Publish site
if: github.event_name != 'pull_request' && github.ref == 'refs/heads/main'
uses: peaceiris/actions-gh-pages@v3.8.0
with:
publish_dir: ./target/website
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: mdoc/target/docs/site
keep_files: true
43 changes: 5 additions & 38 deletions build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -339,44 +339,11 @@ lazy val microsite = project
.in(file("mdoc"))
.settings(
mdocIn := file("site"),
mdocOut := file("target/website"),
mdocVariables := Map(
"version" -> version.value,
"scalaVersions" -> crossScalaVersions.value
.map(v => s"- **$v**")
.mkString("\n")
),
githubWorkflowArtifactUpload := false,
laikaSite := {
sbt.IO.copyDirectory(mdocOut.value, (laikaSite / target).value)
Set.empty
},
tlFatalWarningsInCi := false
)
.dependsOn(coreJVM, io.jvm, reactiveStreams, scodec.jvm)
.enablePlugins(MdocPlugin, NoPublishPlugin)

ThisBuild / githubWorkflowBuildPostamble ++= List(
WorkflowStep.Sbt(
List("microsite/mdoc"),
cond = Some(s"matrix.scala == '$NewScala' && matrix.project == 'rootJVM'")
)
)

ThisBuild / githubWorkflowAddedJobs += WorkflowJob(
id = "site",
name = "Deploy site",
needs = List("publish"),
javas = (ThisBuild / githubWorkflowJavaVersions).value.toList,
scalas = (ThisBuild / scalaVersion).value :: Nil,
cond = """
| always() &&
| needs.build.result == 'success' &&
| (needs.publish.result == 'success' && github.ref == 'refs/heads/main')
""".stripMargin.trim.linesIterator.mkString.some,
steps = githubWorkflowGeneratedDownloadSteps.value.toList :+
WorkflowStep.Use(
UseRef.Public("peaceiris", "actions-gh-pages", "v3"),
name = Some(s"Deploy site"),
params = Map(
"publish_dir" -> "./target/website",
"github_token" -> "${{ secrets.GITHUB_TOKEN }}"
)
)
)
.enablePlugins(TypelevelSitePlugin)
4 changes: 3 additions & 1 deletion project/plugins.sbt
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
addSbtPlugin("org.typelevel" % "sbt-typelevel" % "0.4.5")
val sbtTypelevelVersion = "0.4.5"
addSbtPlugin("org.typelevel" % "sbt-typelevel" % sbtTypelevelVersion)
addSbtPlugin("org.typelevel" % "sbt-typelevel-site" % sbtTypelevelVersion)
addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.9.0")
addSbtPlugin("com.github.tkawachi" % "sbt-doctest" % "0.9.9")
addSbtPlugin("pl.project13.scala" % "sbt-jmh" % "0.4.3")
Expand Down
16 changes: 8 additions & 8 deletions site/getstarted/install.md
Original file line number Diff line number Diff line change
@@ -1,31 +1,31 @@
# Install

The latest version for Cats Effect 3 is `3.2.0`, which supports Cats Effect 3 and is cross built for Scala 2.12, 2.13, and 3.0.
The latest version for Cats Effect 3 is `@VERSION@`, which supports Cats Effect 3 and is cross built for Scala 2.12, 2.13, and 3.0.

The latest version for Cats Effect 2 is `2.5.10`, which supports Cats Effect 2 and is similarly cross built for various Scala versions.

### Dependencies <!-- {docsify-ignore} -->

```
// available for 2.12, 2.13, 3.0
libraryDependencies += "co.fs2" %% "fs2-core" % "<version>"
libraryDependencies += "co.fs2" %% "fs2-core" % "@VERSION@"
// optional I/O library
libraryDependencies += "co.fs2" %% "fs2-io" % "<version>"
libraryDependencies += "co.fs2" %% "fs2-io" % "@VERSION@"
// optional reactive streams interop
libraryDependencies += "co.fs2" %% "fs2-reactive-streams" % "<version>"
libraryDependencies += "co.fs2" %% "fs2-reactive-streams" % "@VERSION@"
// optional scodec interop
libraryDependencies += "co.fs2" %% "fs2-scodec" % "<version>"
libraryDependencies += "co.fs2" %% "fs2-scodec" % "@VERSION@"
```

The fs2-core as well as fs2-io and fs2-scodec libraries are also supported on Scala.js:

```
libraryDependencies += "co.fs2" %%% "fs2-core" % "<version>"
libraryDependencies += "co.fs2" %%% "fs2-io" % "<version>" // Node.js only
libraryDependencies += "co.fs2" %%% "fs2-scodec" % "<version>"
libraryDependencies += "co.fs2" %%% "fs2-core" % "@VERSION@"
libraryDependencies += "co.fs2" %%% "fs2-io" % "@VERSION@" // Node.js only
libraryDependencies += "co.fs2" %%% "fs2-scodec" % "@VERSION@"
```

Release notes for each release are available on [Github](https://github.com/typelevel/fs2/releases/).
Expand Down

0 comments on commit 6b4be66

Please sign in to comment.