Skip to content
This repository has been archived by the owner on May 9, 2023. It is now read-only.

Commit

Permalink
Backport CI/CD mechanism from zio1-branch (#110)
Browse files Browse the repository at this point in the history
  • Loading branch information
guizmaii authored Nov 17, 2022
1 parent b596488 commit 690f4ae
Show file tree
Hide file tree
Showing 11 changed files with 161 additions and 68 deletions.
6 changes: 6 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
13 changes: 0 additions & 13 deletions .github/workflows/auto-approve.yml

This file was deleted.

44 changes: 22 additions & 22 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,25 +1,30 @@
name: CI

on:
pull_request:
push:
branches: ['master', 'series/0.x']
release:
types:
- published
branches:
- zio1-main
- zio2-main
- main
- master
pull_request:
types: [ opened, reopened, synchronize ]

env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

jobs:
lint:
runs-on: ubuntu-20.04
runs-on: ubuntu-latest
steps:
- name: Checkout current branch
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Cache scala dependencies
uses: coursier/cache-action@v6
- name: Setup Java
uses: actions/setup-java@v2.5.0
uses: actions/setup-java@v3
with:
distribution: temurin
java-version: 17
Expand All @@ -30,21 +35,21 @@ jobs:
run: sbt docs/mdoc

test:
runs-on: ubuntu-20.04
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
java: [ '8', '11', '17' ]
scala: [ '2.12.17', '2.13.8', '3.1.3' ]
java: [ '11', '17' ]
scala: [ '2.12.17', '2.13.10', '3.2.1' ]
steps:
- name: Checkout current branch
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Cache scala dependencies
uses: coursier/cache-action@v6
- name: Setup Java
uses: actions/setup-java@v2.5.0
uses: actions/setup-java@v3
with:
distribution: temurin
java-version: ${{ matrix.java }}
Expand All @@ -53,26 +58,21 @@ jobs:
run: sbt ++${{ matrix.scala }}! test

publish:
runs-on: ubuntu-20.04
runs-on: ubuntu-latest
needs: [lint, test]
if: github.event_name != 'pull_request'
steps:
- name: Checkout current branch
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Cache scala dependencies
uses: coursier/cache-action@v6
- name: Setup Java
uses: actions/setup-java@v2.5.0
uses: actions/setup-java@v3
with:
distribution: temurin
java-version: 17
check-latest: true
- name: Release artifacts
run: sbt ci-release
env:
PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }}
PGP_SECRET: ${{ secrets.PGP_SECRET }}
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
run: sbt publish
15 changes: 15 additions & 0 deletions .github/workflows/dependency-graph.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Extracting dependency graph from sbt with: https://github.com/marketplace/actions/sbt-dependency-submission
name: Update Dependency Graph
on:
push:
branches:
- main
- master
- cdk-master
jobs:
dependency-graph:
name: Update Dependency Graph
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3.1.0
- uses: scalacenter/sbt-dependency-submission@v2.0.1
12 changes: 8 additions & 4 deletions .github/workflows/release-drafter.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,16 @@ name: Release Drafter

on:
push:
branches: ['master']
branches:
- zio2-main

pull_request:
types: [ opened, reopened, synchronize ]

jobs:
update_release_draft:
runs-on: ubuntu-20.04
runs-on: ubuntu-latest
steps:
- uses: release-drafter/release-drafter@v5
- uses: release-drafter/release-drafter@v5.21.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
46 changes: 46 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: Release

# Triggered when a draft released is "published" (not a draft anymore)
on:
release:
types: [ published ]

jobs:
tests:
runs-on: ubuntu-latest
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GH_READ_PACKAGES: ${{ secrets.GH_READ_PACKAGES }}
steps:
- uses: actions/checkout@v3
- uses: coursier/cache-action@v6
- uses: actions/setup-java@v3
with:
distribution: temurin
java-version: 17
check-latest: true
- name: Run tests
run: sbt clean test

publish:
needs: tests
runs-on: ubuntu-latest
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- uses: actions/checkout@v3
- uses: coursier/cache-action@v6
- uses: actions/setup-java@v3
with:
distribution: temurin
java-version: 17
check-latest: true

- name: Get the Github Release version
id: vars
run: echo "::set-output name=tag::${GITHUB_REF#refs/*/}"

- name: Publish
run: sbt publish
env:
RELEASE_VERSION: ${{ steps.vars.outputs.tag }}
2 changes: 1 addition & 1 deletion .scalafmt.conf
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
version=3.0.4
version=3.6.1
project.git = true
maxColumn = 120
align {
Expand Down
78 changes: 57 additions & 21 deletions build.sbt
Original file line number Diff line number Diff line change
@@ -1,17 +1,37 @@
import sbt.Keys.{ fork, parallelExecution }
import scala.sys.process._

import scala.util.Try

lazy val scala212 = "2.12.17"
lazy val scala213 = "2.13.8"
lazy val scala3 = "3.1.3"
lazy val scala213 = "2.13.10"
lazy val scala3 = "3.2.1"
lazy val mainScala = scala213
lazy val allScala = Seq(scala212, scala3, mainScala)

lazy val zioVersion = "2.0.2"
lazy val kafkaVersion = "3.2.0"
lazy val kafkaVersion = "3.2.0-cdk"
lazy val embeddedKafkaVersion = "3.2.0" // Should be the same as kafkaVersion, except for the patch part

lazy val embeddedKafka = "io.github.embeddedkafka" %% "embedded-kafka" % embeddedKafkaVersion
lazy val kafkaClients = "io.conduktor.kafka" % "kafka-clients" % kafkaVersion
lazy val zio = "dev.zio" %% "zio" % zioVersion
lazy val zioStreams = "dev.zio" %% "zio-streams" % zioVersion
lazy val zioTest = "dev.zio" %% "zio-test" % zioVersion
lazy val zioTestSbt = "dev.zio" %% "zio-test-sbt" % zioVersion
lazy val scalaCollectionCompat = "org.scala-lang.modules" %% "scala-collection-compat" % "2.8.1"
lazy val jacksonDatabind = "com.fasterxml.jackson.core" % "jackson-databind" % "2.14.0"
lazy val logback = "ch.qos.logback" % "logback-classic" % "1.4.4"
lazy val embeddedKafka = "io.github.embeddedkafka" %% "embedded-kafka" % embeddedKafkaVersion

val GITHUB_OWNER = "conduktor"
val GITHUB_PROJECT = "zio-kafka"

def env(v: String): Option[String] = sys.env.get(v)

inThisBuild(
List(
version := sys.env
.getOrElse("RELEASE_VERSION", "0.0.1-SNAPSHOT"), // "RELEASE_VERSION" comes from .github/workflows/release.yml
organization := "dev.zio",
homepage := Some(url("https://github.com/zio/zio-kafka")),
licenses := List("Apache-2.0" -> url("http://www.apache.org/licenses/LICENSE-2.0")),
Expand All @@ -21,9 +41,6 @@ inThisBuild(
Test / parallelExecution := false,
Test / fork := true,
run / fork := true,
pgpPublicRing := file("/tmp/public.asc"),
pgpSecretRing := file("/tmp/secret.asc"),
pgpPassphrase := sys.env.get("PGP_PASSWORD").map(_.toArray),
scmInfo := Some(
ScmInfo(url("https://github.com/zio/zio-kafka/"), "scm:git:git@github.com:zio/zio-kafka.git")
),
Expand All @@ -34,6 +51,25 @@ inThisBuild(
"iravid@iravid.com",
url("https://github.com/iravid")
)
),
// ####### BEGIN: Conduktor publishing settings #######
publishMavenStyle := true,
publishTo := Some(
s"GitHub $GITHUB_OWNER Apache Maven Packages of $GITHUB_PROJECT" at s"https://maven.pkg.github.com/$GITHUB_OWNER/$GITHUB_PROJECT"
),
resolvers += s"GitHub $GITHUB_OWNER Apache Maven Packages" at s"https://maven.pkg.github.com/$GITHUB_OWNER/_/",
credentials += Credentials(
"GitHub Package Registry",
"maven.pkg.github.com",
GITHUB_OWNER,
(env("GH_PACKAGES_TOKEN") orElse env("GH_READ_PACKAGES") orElse env("GITHUB_TOKEN"))
.orElse(Try(s"git config github.token".!!).map(_.trim).toOption)
.getOrElse(
throw new RuntimeException(
"Missing env variable: `GH_PACKAGES_TOKEN` or `GH_READ_PACKAGES` or `GITHUB_TOKEN` or git config option: `github.token`"
)
)
// ####### END: Conduktor publishing settings #######
)
)
)
Expand Down Expand Up @@ -81,10 +117,10 @@ lazy val zioKafka =
.settings(buildInfoSettings("zio.kafka"))
.settings(
libraryDependencies ++= Seq(
"dev.zio" %% "zio-streams" % zioVersion,
"org.apache.kafka" % "kafka-clients" % kafkaVersion,
"com.fasterxml.jackson.core" % "jackson-databind" % "2.13.3",
"org.scala-lang.modules" %% "scala-collection-compat" % "2.7.0"
zioStreams,
kafkaClients,
jacksonDatabind,
scalaCollectionCompat
)
)

Expand All @@ -97,9 +133,9 @@ lazy val zioKafkaTestUtils =
.settings(buildInfoSettings("zio.kafka"))
.settings(
libraryDependencies ++= Seq(
"dev.zio" %% "zio" % zioVersion,
"org.apache.kafka" % "kafka-clients" % kafkaVersion,
"org.scala-lang.modules" %% "scala-collection-compat" % "2.7.0"
zio,
kafkaClients,
scalaCollectionCompat
) ++ {
if (scalaBinaryVersion.value == "3")
Seq(
Expand All @@ -120,13 +156,13 @@ lazy val zioKafkaTest =
.settings(publish / skip := true)
.settings(
libraryDependencies ++= Seq(
"dev.zio" %% "zio-streams" % zioVersion,
"dev.zio" %% "zio-test" % zioVersion % Test,
"dev.zio" %% "zio-test-sbt" % zioVersion % Test,
"org.apache.kafka" % "kafka-clients" % kafkaVersion,
"com.fasterxml.jackson.core" % "jackson-databind" % "2.13.4",
"ch.qos.logback" % "logback-classic" % "1.2.11" % Test,
"org.scala-lang.modules" %% "scala-collection-compat" % "2.8.1"
zioStreams,
zioTest % Test,
zioTestSbt % Test,
kafkaClients,
jacksonDatabind,
logback % Test,
scalaCollectionCompat
) ++ {
if (scalaBinaryVersion.value == "3")
Seq(
Expand Down
2 changes: 1 addition & 1 deletion project/build.properties
Original file line number Diff line number Diff line change
@@ -1 +1 @@
sbt.version=1.7.1
sbt.version=1.8.0
9 changes: 4 additions & 5 deletions project/plugins.sbt
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.4.6")
addSbtPlugin("io.github.davidgregory084" % "sbt-tpolecat" % "0.4.1")
addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.11.0")
addSbtPlugin("com.github.sbt" % "sbt-ci-release" % "1.5.10")
addSbtPlugin("org.scalameta" % "sbt-mdoc" % "2.3.3")
addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.0")
addSbtPlugin("io.github.davidgregory084" % "sbt-tpolecat" % "0.4.1")
addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.11.0")
addSbtPlugin("org.scalameta" % "sbt-mdoc" % "2.3.3")
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ object DiagnosticEvent {
tpRequested: Set[TopicPartition],
tpWithData: Set[TopicPartition],
tpWithoutData: Set[TopicPartition]
) extends DiagnosticEvent
) extends DiagnosticEvent
final case class Request(partition: TopicPartition) extends DiagnosticEvent

sealed trait Commit extends DiagnosticEvent
Expand Down

0 comments on commit 690f4ae

Please sign in to comment.