From fba7358cf2545e6e5122e1e26bf59e04fc333b12 Mon Sep 17 00:00:00 2001 From: abalias Date: Thu, 27 Oct 2022 13:35:54 +0100 Subject: [PATCH] build(mercury): automate mercury-mediator docker release process (#90) --- mercury/mercury-mediator/CHANGELOG.md | 0 mercury/mercury-mediator/build.sbt | 20 ++++++- mercury/mercury-mediator/package.json | 55 ++++++++++++++++++++ mercury/mercury-mediator/project/plugins.sbt | 2 + mercury/mercury-mediator/version.sbt | 1 + 5 files changed, 76 insertions(+), 2 deletions(-) create mode 100644 mercury/mercury-mediator/CHANGELOG.md create mode 100644 mercury/mercury-mediator/package.json create mode 100644 mercury/mercury-mediator/version.sbt diff --git a/mercury/mercury-mediator/CHANGELOG.md b/mercury/mercury-mediator/CHANGELOG.md new file mode 100644 index 0000000000..e69de29bb2 diff --git a/mercury/mercury-mediator/build.sbt b/mercury/mercury-mediator/build.sbt index 7f7fe42942..81dda2c78a 100644 --- a/mercury/mercury-mediator/build.sbt +++ b/mercury/mercury-mediator/build.sbt @@ -1,3 +1,5 @@ +import sbtrelease.ReleasePlugin.autoImport.ReleaseTransformations._ + inThisBuild( Seq( organization := "io.iohk.atala", @@ -7,7 +9,7 @@ inThisBuild( versionScheme := Some("semver-spec"), githubOwner := "input-output-hk", githubRepository := "atala-prism-building-blocks", - githubTokenSource := TokenSource.Environment("GITHUB_TOKEN") + githubTokenSource := TokenSource.Environment("ATALA_GITHUB_TOKEN") ) ) @@ -85,8 +87,22 @@ lazy val mediator = project testFrameworks := Seq(new TestFramework("zio.test.sbt.ZTestFramework")), // ### Build Docker Image ### Docker / maintainer := "atala-coredid@iohk.io", - Docker / dockerRepository := Some("atala-prism.io"), + Docker / dockerRepository := Some("ghcr.io"), + Docker / dockerUsername := Some("input-output-hk"), + Docker / githubOwner := "atala-prism-building-blocks", + Docker / dockerUpdateLatest := true, dockerExposedPorts := Seq(8080), dockerBaseImage := "openjdk:11" ) .enablePlugins(JavaAppPackaging, DockerPlugin) + +// ### ReleaseStep ### +releaseProcess := Seq[ReleaseStep]( + checkSnapshotDependencies, + inquireVersions, + runClean, + runTest, + setReleaseVersion, + ReleaseStep(releaseStepTask(Docker / publish)), + setNextVersion +) diff --git a/mercury/mercury-mediator/package.json b/mercury/mercury-mediator/package.json new file mode 100644 index 0000000000..e52abd7c23 --- /dev/null +++ b/mercury/mercury-mediator/package.json @@ -0,0 +1,55 @@ +{ + "name": "mercury-mediator", + "devDependencies": { + "@commitlint/cli": "^17.0.3", + "@commitlint/config-conventional": "^17.0.3", + "@semantic-release/changelog": "^6.0.1", + "@semantic-release/exec": "^6.0.3", + "@semantic-release/git": "^10.0.1", + "conventional-changelog-conventionalcommits": "^5.0.0", + "gradle-semantic-release-plugin": "1.7.3", + "husky": "^8.0.1", + "pinst": "^3.0.0", + "prettier": "^2.7.1", + "semantic-release": "^19.0.3", + "semantic-release-monorepo": "^7.0.5" + }, + "extends": "semantic-release-monorepo", + "release": { + "branches": [ + { + "name": "main" + }, + { + "name": "prerelease/mercury-mediator", + "prerelease": "snapshot" + } + ], + "plugins": [ + "@semantic-release/commit-analyzer", + "@semantic-release/release-notes-generator", + [ + "@semantic-release/exec", + { + "prepareCmd": "sbt \"release release-version ${nextRelease.version} next-version ${nextRelease.version}-SNAPSHOT with-defaults\"" + } + ], + [ + "@semantic-release/changelog", + { + "changelogFile": "CHANGELOG.md" + } + ], + [ + "@semantic-release/git", + { + "assets": [ + "version.sbt", + "CHANGELOG.md" + ], + "message": "chore(release): cut mercury-mediator image ${nextRelease.version} release [skip ci]\n\n${nextRelease.notes}" + } + ] + ] + } +} diff --git a/mercury/mercury-mediator/project/plugins.sbt b/mercury/mercury-mediator/project/plugins.sbt index a1ced226cb..142ef6021c 100644 --- a/mercury/mercury-mediator/project/plugins.sbt +++ b/mercury/mercury-mediator/project/plugins.sbt @@ -1,3 +1,5 @@ addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.4.6") addSbtPlugin("com.github.sbt" % "sbt-native-packager" % "1.9.9") //1.9.11 addSbtPlugin("com.codecommit" % "sbt-github-packages" % "0.5.3") +addSbtPlugin("com.github.sbt" % "sbt-release" % "1.1.0") + diff --git a/mercury/mercury-mediator/version.sbt b/mercury/mercury-mediator/version.sbt new file mode 100644 index 0000000000..e91862e625 --- /dev/null +++ b/mercury/mercury-mediator/version.sbt @@ -0,0 +1 @@ +ThisBuild / version := "0.1.0-SNAPSHOT"