From ac8b470fd3a6b41f6db653a01402352e5b6a2058 Mon Sep 17 00:00:00 2001 From: Piotr Perzyna Date: Wed, 13 Jan 2021 14:29:19 +0100 Subject: [PATCH 1/4] Add PR template, dynver, drafter, scala steward --- .github/pull_request_template.md | 23 +++++++++++++++ .github/release-drafter.yml | 34 ++++++++++++++++++++++ .github/workflows/ci.yml | 37 +++++++++++++++++++++++ .github/workflows/deploy.yml | 26 +++++++++++++++++ .github/workflows/release-drafter.yml | 14 +++++++++ .github/workflows/scala-steward.yml | 17 +++++++++++ .travis.yml | 42 --------------------------- README.md | 18 +++++------- project/plugins.sbt | 2 ++ 9 files changed, 161 insertions(+), 52 deletions(-) create mode 100644 .github/pull_request_template.md create mode 100644 .github/release-drafter.yml create mode 100644 .github/workflows/ci.yml create mode 100644 .github/workflows/deploy.yml create mode 100644 .github/workflows/release-drafter.yml create mode 100644 .github/workflows/scala-steward.yml delete mode 100644 .travis.yml diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000..e7f40af --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,23 @@ +## Description +Mandatory, provide a detailed description of the changes. + +## Why +Optional i.e. "Why I have chosen package X, and not alternative package Y, Z" + +## AC +Copy and paste from task + +## Source +Link to jira story/task/bug + +## Type +- [ ] Bug Fix +- [ ] Feature Addition +- [ ] Refactor +- [ ] HotFix + +## Checklist +- [ ] tested locally +- [ ] added new dependencies +- [ ] updated the docs +- [ ] added a test diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml new file mode 100644 index 0000000..221de52 --- /dev/null +++ b/.github/release-drafter.yml @@ -0,0 +1,34 @@ +name-template: 'v$RESOLVED_VERSION' +tag-template: 'v$RESOLVED_VERSION' + +categories: + - title: 'Features' + labels: + - 'feature' + - title: 'Bugs' + labels: + - 'bug' + - 'fix' + - title: 'Maintenance' + labels: + - 'chore' + +change-template: '- $TITLE @$AUTHOR (#$NUMBER)' +change-title-escapes: '\<*_&' + +version-resolver: + default: patch + major: + labels: + - 'major' + minor: + labels: + - 'minor' + patch: + labels: + - 'patch' + +template: | + ## Changes + + $CHANGES diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..6f477e2 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,37 @@ +name: CI + +on: + workflow_dispatch: + push: + branches-ignore: + - main + +jobs: + build: + name: Build + runs-on: ubuntu-latest + timeout-minutes: 10 + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Setup + uses: actions/setup-java@v1 + with: + java-version: 11 + java-package: jdk + architecture: x64 + + - name: Clean + run: sbt clean + + - name: Compile + run: sbt +compile + + - name: Test - Compile + run: sbt +test:compile + + - name: Test + run: sbt +test diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..ee56f77 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,26 @@ +name: Deploy + +on: + push: + branches: + - main + release: + types: + - released + +jobs: + deploy: + name: Deploy + runs-on: ubuntu-latest + timeout-minutes: 10 + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Publish + run: sbt clean +publish + env: + AWS_ACCESS_KEY_ID: ${{ secrets.ARTIFACTS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.ARTIFACTS_SECRET_ACCESS_KEY }} diff --git a/.github/workflows/release-drafter.yml b/.github/workflows/release-drafter.yml new file mode 100644 index 0000000..896edaf --- /dev/null +++ b/.github/workflows/release-drafter.yml @@ -0,0 +1,14 @@ +name: Release Drafter + +on: + push: + branches: + - main + +jobs: + update_release_draft: + runs-on: ubuntu-latest + steps: + - uses: release-drafter/release-drafter@v5 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/scala-steward.yml b/.github/workflows/scala-steward.yml new file mode 100644 index 0000000..f6c3472 --- /dev/null +++ b/.github/workflows/scala-steward.yml @@ -0,0 +1,17 @@ +name: Scala Steward + +on: + workflow_dispatch: + schedule: + - cron: '0 4 * * *' + +jobs: + scala-steward: + runs-on: ubuntu-latest + name: Launch Scala Steward + steps: + - name: Launch Scala Steward + uses: scala-steward-org/scala-steward-action@v2 + with: + github-token: ${{ secrets.BOT_GITHUB_TOKEN }} + author-email: 60430417+dataswiftbotie@users.noreply.github.com diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index cc6d1f3..0000000 --- a/.travis.yml +++ /dev/null @@ -1,42 +0,0 @@ -language: scala -dist: trusty -sudo: false -scala: -- 2.12.12 -jdk: -- openjdk8 -cache: - directories: - - "$HOME/.ivy2/cache" - - "$HOME/.sbt/boot/scala-$TRAVIS_SCALA_VERSION" -branches: - only: - - master - - dev -env: - global: - - AWS_DEFAULT_REGION=eu-west-1 - - AWS_REGION=eu-west-1 - - secure: rRmQJ0h03w/+Q71R8tLsBq+KZsKaJLdwnxwEqwyFvefzqXxAlbXwtfbOpjaQT1sclYUprVwdZ9glf5tam8nk8UJTjNDy8ohnvxB2/Ow0oMhhvulKTtE+bGeKyWhkWonxMVYonCfj32OE5LX0cjcTiHp1mQhXBBHrO5J6wS8NFES40CImJEHljx9AbGxIfLg79B4+8fj6Dz2mNnA136NO3aP1YjZDuysuF0MKPavqsGYKkgE3C+YnKRo4cCNiODyunHr55zkrOVFLgDWJ8Ia833JiZyxZaAzSDDZnLkMXBxt+JvgM6XRtNE3hdYJ5PZYEXZcsRhoxXgZMHgsl5vpCq/f2cZiXeo3vX5WPgjTeC8eEpUt51t0y9uJB8zWIDzKXa2MjDzjYnKlfdInJqzpDaMGHy9MfganVqPsIh9CuRzNlhaJmXtmlqr132B/gBxSlgbv6Qw1YOmecW6u+xNTLKkqDIFHx9e6UeQHKAnvasaRa8KH1j/ZDI0zDuPXrC+rkUx2uO8JKoQWNa5dWoJwvcSaCiSsl9mgPK492OuuSS8y5XR//2oRieAPObWEUkNzBejSbkntVhFmRQ/ht3tVbnbcy2nszQsgSCENnIDTK4CXiaQl+sFIlgQPu60RbGoCaDQtuaA1cnEiUjj6c6WYKQIO08zctt/83MWp1eJrPhbo= - - secure: hDYa/9qlkF0WrkOuZ8gl9M6+CPBwvHsGi+Ryzh7zEuYmUwlRRKyqyIo8XoxNwvpE/VDPAVvipryhZFBjFXCd0WAE+H9NZlTvFTPYGUEDzp3hsHcNt+ekdX/uZNKaE6fQqtJ3OVj3/mr0uvcFxEEnweRrwxsaM+HMbu8WtMllGJCKHCadiOJHw8iKte2wvGsvdG8EcFUEAMtKbmlkNi77gnN580p+jNDgM6jjgxefilR5Qmr78+loFaBNadQsdqnD0mMrjoNhuuo8NQxvJU9AAOB4wOH19kdWdyGzw4ksjP0Sp9T/cOrORV6Rtzm6CtTRatvOKo8neDE5BgWFTj9P+6gWvkxpEkih/har0rep7C999QMazLjEXx2EbcIe7yTfkmQ7c4E6jbJoIJMCAXD+tZCdhwiT1aODzyak1eMzpDWpAMgdt+w1BTMy3WEiTHBoMy1QwDMbSWAS1xGkzF2oixa/q8tv18Yn0CwITRGDFDvu53My/t0VO6wTolCoii4f/ym4irU3sopzRLTMdjYz4E5YqfPX6pr3agQvIWWu7rEarAJDCECLAhyP1+jZrHbnuGhGL5zKLm+LOq3A1hHRf12j6sllwMquIYwzgY6k3lDElSgEvpvNwj92G3obGF63cU3nFmmNsM5skTSzDz+uFvAFxguuqDLSWDkF7AKT50I= -install: -- pip install --user awscli -- export PATH=$PATH:$HOME/.local/bin -script: -- sbt clean -- sbt ++$TRAVIS_SCALA_VERSION compile -- sbt ++$TRAVIS_SCALA_VERSION test:compile -- sbt ++$TRAVIS_SCALA_VERSION coverage test -- sbt driver/it:test -after_success: -- find $HOME/.sbt -name "*.lock" | xargs rm -- find $HOME/.ivy2 -name "ivydata-*.properties" | xargs rm -- | - if [[ "$TRAVIS_PULL_REQUEST" = "false" || -z "$RUMPEL" ]]; then - sbt coverageReport - fi -deploy: -- provider: script - script: - - sbt publish - skip_cleanup: true diff --git a/README.md b/README.md index 50a759a..628c78e 100644 --- a/README.md +++ b/README.md @@ -1,28 +1,26 @@ # Scala API wrappers for the HAT -Current Version: 0.0.7 - Slick PostgreSQL Code generator and Driver with useful extensions ## Usage To use the sbt plugin in your project, add this to `plugins.sbt`: -``` - resolvers += "HAT Library Artifacts Snapshots" at "https://s3-eu-west-1.amazonaws.com/library-artifacts-releases.hubofallthings.com" - addSbtPlugin("org.hatdex" % "sbt-slick-postgres-generator" % "0.0.7") +```Scala +resolvers += "HAT Library Artifacts Snapshots" at "https://s3-eu-west-1.amazonaws.com/library-artifacts-releases.hubofallthings.com" +addSbtPlugin("org.hatdex" % "sbt-slick-postgres-generator" % "X.Y.Z") ``` Similarly, for the driver library, add it to your `build.sbt`: -``` - libraryDependencies += "org.hatdex" %% "slick-postgres-driver" % "0.0.7" +```Scala +libraryDependencies += "org.hatdex" %% "slick-postgres-driver" % "X.Y.Z" ``` ## Publishing To publish the library: - sbt +publish - - +```Bash +sbt +publish +``` diff --git a/project/plugins.sbt b/project/plugins.sbt index 528eff6..12419fd 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -11,3 +11,5 @@ addSbtPlugin("org.scoverage" % "sbt-scoverage" % "1.5.1") // S3 based SBT resolver resolvers += Resolver.jcenterRepo addSbtPlugin("ohnosequences" % "sbt-s3-resolver" % "0.18.0") + +addSbtPlugin("com.dwijnand" % "sbt-dynver" % "4.1.1") From 8b83a7e1ada73dbc62fa5ffb0986b8627548c1ed Mon Sep 17 00:00:00 2001 From: Piotr Perzyna Date: Wed, 13 Jan 2021 14:53:46 +0100 Subject: [PATCH 2/4] remove fixed version --- project/BuildSettings.scala | 1 - 1 file changed, 1 deletion(-) diff --git a/project/BuildSettings.scala b/project/BuildSettings.scala index 552d92b..9fc03e9 100644 --- a/project/BuildSettings.scala +++ b/project/BuildSettings.scala @@ -18,7 +18,6 @@ object BasicSettings extends AutoPlugin { override def projectSettings = Seq( organization := "org.hatdex", - version := "0.0.12", resolvers ++= Dependencies.resolvers, scalaVersion := Dependencies.Versions.scalaVersion, crossScalaVersions := Dependencies.Versions.crossScala, From 0db6bb3924d49fc97e215f9f1445026d263a8c8d Mon Sep 17 00:00:00 2001 From: Piotr Perzyna Date: Wed, 13 Jan 2021 16:02:10 +0100 Subject: [PATCH 3/4] Use common resolvers --- build.sbt | 28 ++++++++++++++-------------- project/plugins.sbt | 7 ++----- 2 files changed, 16 insertions(+), 19 deletions(-) diff --git a/build.sbt b/build.sbt index a3960dd..e45872a 100644 --- a/build.sbt +++ b/build.sbt @@ -1,10 +1,21 @@ import Dependencies.Library +lazy val commonSettings = Seq( + publishMavenStyle := true, + publishTo := { + val prefix = if (isSnapshot.value) "snapshots" else "releases" + Some(s"Models$prefix" at s"s3://library-artifacts-$prefix.hubofallthings.com") + }, + resolvers += "HAT Library Artifacts Releases" at "https://s3-eu-west-1.amazonaws.com/library-artifacts-releases.hubofallthings.com", + resolvers += "HAT Library Artifacts Snapshots" at "https://s3-eu-west-1.amazonaws.com/library-artifacts-snapshots.hubofallthings.com" +) + lazy val driver = project.in(file("slick-postgres-driver")) .enablePlugins(BasicSettings) .settings( name := "slick-postgres-driver", - crossScalaVersions := Seq("2.12.12", "2.11.12") + crossScalaVersions := Seq("2.12.12", "2.11.12"), + commonSettings ) .settings( libraryDependencies ++= Seq( @@ -21,12 +32,6 @@ lazy val driver = project.in(file("slick-postgres-driver")) Library.TestContainers.postgresql ) ) - .settings( - publishTo := { - val prefix = if (isSnapshot.value) "snapshots" else "releases" - Some(s3resolver.value("HAT Library Artifacts " + prefix, s3("library-artifacts-" + prefix + ".hubofallthings.com")) withMavenPatterns) - } - ) .configs(IntegrationTest) .settings( Defaults.itSettings, @@ -39,7 +44,8 @@ lazy val plugin = project.in(file("sbt-slick-postgres-generator")) .enablePlugins(BasicSettings) .settings( name := "sbt-slick-postgres-generator", - sbtPlugin := true + sbtPlugin := true, + commonSettings ) .settings( libraryDependencies ++= Seq( @@ -51,12 +57,6 @@ lazy val plugin = project.in(file("sbt-slick-postgres-generator")) Library.Slick.slickPgJoda, Library.Slick.slickPgPlayJson) ) - .settings( - publishTo := { - val prefix = if (isSnapshot.value) "snapshots" else "releases" - Some(s3resolver.value("HAT Library Artifacts " + prefix, s3("library-artifacts-" + prefix + ".hubofallthings.com")) withMavenPatterns) - } - ) .dependsOn(driver) lazy val genDriver = project diff --git a/project/plugins.sbt b/project/plugins.sbt index 12419fd..6265e21 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,6 +1,7 @@ logLevel := Level.Warn -resolvers += Resolver.typesafeRepo("releases") +resolvers += "FrugalMechanic Snapshots" at "s3://maven.frugalmechanic.com/snapshots" +addSbtPlugin("com.frugalmechanic" % "fm-sbt-s3-resolver" % "0.19.0") libraryDependencies += "org.scala-lang" % "scala-compiler" % scalaVersion.value @@ -8,8 +9,4 @@ addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.2.2") addSbtPlugin("org.scalariform" % "sbt-scalariform" % "1.8.1") addSbtPlugin("org.scoverage" % "sbt-scoverage" % "1.5.1") -// S3 based SBT resolver -resolvers += Resolver.jcenterRepo -addSbtPlugin("ohnosequences" % "sbt-s3-resolver" % "0.18.0") - addSbtPlugin("com.dwijnand" % "sbt-dynver" % "4.1.1") From c93a172e84b411fcd5f3a7c3117cee793b45276b Mon Sep 17 00:00:00 2001 From: Piotr Perzyna Date: Wed, 13 Jan 2021 16:13:34 +0100 Subject: [PATCH 4/4] remove resolver and fix the name of publishing destination --- build.sbt | 2 +- project/plugins.sbt | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/build.sbt b/build.sbt index e45872a..eba74ec 100644 --- a/build.sbt +++ b/build.sbt @@ -4,7 +4,7 @@ lazy val commonSettings = Seq( publishMavenStyle := true, publishTo := { val prefix = if (isSnapshot.value) "snapshots" else "releases" - Some(s"Models$prefix" at s"s3://library-artifacts-$prefix.hubofallthings.com") + Some(s"HAT Library Artifacts $prefix" at s"s3://library-artifacts-$prefix.hubofallthings.com") }, resolvers += "HAT Library Artifacts Releases" at "https://s3-eu-west-1.amazonaws.com/library-artifacts-releases.hubofallthings.com", resolvers += "HAT Library Artifacts Snapshots" at "https://s3-eu-west-1.amazonaws.com/library-artifacts-snapshots.hubofallthings.com" diff --git a/project/plugins.sbt b/project/plugins.sbt index 6265e21..a1fd6e7 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,12 +1,9 @@ logLevel := Level.Warn -resolvers += "FrugalMechanic Snapshots" at "s3://maven.frugalmechanic.com/snapshots" -addSbtPlugin("com.frugalmechanic" % "fm-sbt-s3-resolver" % "0.19.0") - libraryDependencies += "org.scala-lang" % "scala-compiler" % scalaVersion.value +addSbtPlugin("com.frugalmechanic" % "fm-sbt-s3-resolver" % "0.19.0") addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.2.2") addSbtPlugin("org.scalariform" % "sbt-scalariform" % "1.8.1") addSbtPlugin("org.scoverage" % "sbt-scoverage" % "1.5.1") - addSbtPlugin("com.dwijnand" % "sbt-dynver" % "4.1.1")