Skip to content

Commit

Permalink
Migrate to github actions and publish to maven (close #194)
Browse files Browse the repository at this point in the history
  • Loading branch information
istreeter committed Sep 2, 2021
1 parent 338d91a commit 38d0d0b
Show file tree
Hide file tree
Showing 8 changed files with 151 additions and 91 deletions.
20 changes: 20 additions & 0 deletions .github/workflows/snyk.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: Snyk

on:
push:
branches: [ master ]

jobs:
security:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2

- name: Run Snyk to check for vulnerabilities
uses: snyk/actions/scala@master
with:
command: monitor
args: --project-name=snowplow-elasticsearch-loader
env:
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
109 changes: 109 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
name: CI

on:
push:
tags:
- '*'
branches:
- master
- develop
pull_request:

jobs:
test:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- uses: coursier/cache-action@v6
- name: Set up JDK 11
uses: actions/setup-java@v2
with:
java-version: 11
distribution: adopt
- name: Run tests
run: sbt clean test

deploy_github:
needs: test
if: startsWith(github.ref, 'refs/tags/')
runs-on: ubuntu-latest
steps:
- name: Get current version
id: ver
run: echo "::set-output name=tag::${GITHUB_REF#refs/tags/}"

- uses: actions/checkout@v2

- uses: coursier/cache-action@v6

- name: Set up JDK 11
uses: actions/setup-java@v2
with:
java-version: 11
distribution: adopt


- name: Build artifacts
run: sbt 'project elasticsearch' assembly

- name: Create GitHub release and attach artifacts
uses: softprops/action-gh-release@v1
with:
draft: true
prerelease: true
name: Version ${{ steps.ver.outputs.tag }}
tag_name: ${{ steps.ver.outputs.tag }}
files: |
elasticsearch/target/scala-2.12/snowplow-elasticsearch-loader-${{ steps.ver.outputs.tag }}.jar
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

deploy_docker:
needs: test
if: startsWith(github.ref, 'refs/tags/')
runs-on: ubuntu-latest
steps:

- name: Get current version
id: ver
run: echo "::set-output name=tag::${GITHUB_REF#refs/tags/}"

- uses: actions/checkout@v2

- uses: coursier/cache-action@v6

- name: Stage the Docker build
run: sbt "project elasticsearch" docker:stage

- name: Docker metadata
id: meta
uses: docker/metadata-action@v3
with:
images: snowplow/elasticsearch-loader
tags: |
type=raw,value=latest,enable=${{ !contains(steps.ver.outputs.tag, 'rc') }}
type=raw,value=${{ steps.ver.outputs.tag }}
flavor: |
latest=false
- name: Set up QEMU
uses: docker/setup-qemu-action@v1

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1

- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

- name: Push image
uses: docker/build-push-action@v2
with:
context: elasticsearch/target/docker/stage
file: elasticsearch/target/docker/stage/Dockerfile
platforms: linux/amd64,linux/arm64/v8
tags: ${{ steps.meta.outputs.tags }}
push: true
42 changes: 0 additions & 42 deletions .release.yml

This file was deleted.

25 changes: 0 additions & 25 deletions .travis.yml

This file was deleted.

8 changes: 0 additions & 8 deletions .travis/docker_auth.sh

This file was deleted.

12 changes: 6 additions & 6 deletions build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -41,25 +41,25 @@ lazy val commonDependencies = Seq(
lazy val buildSettings = Seq(
organization := "com.snowplowanalytics",
name := "snowplow-elasticsearch-loader",
version := "1.0.0",
description := "Load the contents of a Kinesis stream or NSQ topic to Elasticsearch",
scalaVersion := "2.12.10",
scalacOptions := BuildSettings.compilerOptions,
javacOptions := BuildSettings.javaCompilerOptions,
resolvers += Resolver.jcenterRepo,
shellPrompt := { _ =>
"elasticsearch-loader> "
},
scalafmtOnCompile := true
}
)

lazy val allSettings = buildSettings ++
BuildSettings.sbtAssemblySettings ++
Seq(libraryDependencies ++= commonDependencies)
BuildSettings.assemblySettings ++
Seq(libraryDependencies ++= commonDependencies) ++
BuildSettings.dynVerSettings ++
BuildSettings.assemblySettings

lazy val root = project
.in(file("."))
.settings(buildSettings)
.settings(allSettings)
.aggregate(core, elasticsearch)

lazy val core = project
Expand Down
19 changes: 12 additions & 7 deletions project/BuildSettings.scala
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@
import sbt._
import Keys._

import com.typesafe.sbt.packager.Keys.{daemonUser, maintainer, packageName}
import com.typesafe.sbt.packager.docker.DockerPlugin.autoImport._
import com.typesafe.sbt.packager.universal.UniversalPlugin.autoImport._
import com.typesafe.sbt.packager.Keys._
import com.typesafe.sbt.packager.docker.DockerPlugin.autoImport.{Docker, dockerExposedPorts, dockerUpdateLatest}
import sbtdynver.DynVerPlugin.autoImport._

object BuildSettings {

Expand All @@ -38,8 +38,8 @@ object BuildSettings {
)

lazy val javaCompilerOptions = Seq(
"-source", "1.8",
"-target", "1.8"
"-source", "11",
"-target", "11"
)

lazy val dockerSettings = Seq(
Expand Down Expand Up @@ -72,8 +72,8 @@ object BuildSettings {

// sbt-assembly settings for building an executable
import sbtassembly.AssemblyPlugin.autoImport._
lazy val sbtAssemblySettings = Seq(
assembly / assemblyJarName := { s"${moduleName.value}-${version.value}.jar" },
lazy val assemblySettings = Seq(
assembly / assemblyJarName := { s"${name.value}-${version.value}.jar" },
assembly / test := {},
assembly / assemblyMergeStrategy := {
case x if x.endsWith("module-info.class") => MergeStrategy.discard // not used by JDK8
Expand All @@ -84,4 +84,9 @@ object BuildSettings {
oldStrategy(x)
}
)

lazy val dynVerSettings = Seq(
ThisBuild / dynverVTagPrefix := false, // Otherwise git tags required to have v-prefix
ThisBuild / dynverSeparator := "-" // to be compatible with docker
)
}
7 changes: 4 additions & 3 deletions project/plugins.sbt
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.5")
addSbtPlugin("com.lucidchart" % "sbt-scalafmt" % "1.15")
addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.3.22")
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "1.0.0")
addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.4.3")
addSbtPlugin("com.github.sbt" % "sbt-native-packager" % "1.9.4")
addSbtPlugin("com.dwijnand" % "sbt-dynver" % "4.1.1")

0 comments on commit 38d0d0b

Please sign in to comment.