build.sbt (43 lines of code) (raw):

name := "geoip-db-refresher" organization := "com.gu" description:= "Fetching the latest GeoIP database and putting it in S3 for Ophan" version := "1.0" scalaVersion := "3.3.1" scalacOptions ++= Seq( "-deprecation", "-encoding", "UTF-8" ) libraryDependencies ++= Seq( "com.amazonaws" % "aws-lambda-java-core" % "1.2.3", "com.amazonaws" % "aws-lambda-java-events" % "3.11.5", "net.logstash.logback" % "logstash-logback-encoder" % "7.4", "org.slf4j" % "log4j-over-slf4j" % "2.0.12", // log4j-over-slf4j provides `org.apache.log4j.MDC`, which is dynamically loaded by the Lambda runtime "ch.qos.logback" % "logback-classic" % "1.4.14", "com.lihaoyi" %% "upickle" % "3.1.4", "com.google.guava" % "guava" % "32.1.3-jre", "org.apache.commons" % "commons-compress" % "1.26.2", "commons-io" % "commons-io" % "2.15.1", ) ++ Seq("ssm", "s3", "url-connection-client").map(artifact => "software.amazon.awssdk" % artifact % "2.25.28") enablePlugins(BuildInfoPlugin) assembly / assemblyOutputPath := file(s"target/${name.value}.jar") assembly / assemblyMergeStrategy := { case PathList("META-INF", "MANIFEST.MF") => MergeStrategy.discard case _ => MergeStrategy.first } def env(propName: String): Option[String] = sys.env.get(propName).filter(_.trim.nonEmpty) buildInfoPackage := "ophan.geoip.extractor" buildInfoKeys ++= Seq[BuildInfoKey]( name, scalaVersion, sbtVersion, // copied from https://github.com/guardian/sbt-riffraff-artifact/blob/e6f5e62d8f776b1004f72ed1ea415328fa43ed31/src/main/scala/com/gu/riffraff/artifact/BuildInfo.scala BuildInfoKey.sbtbuildinfoConstantEntry("buildNumber", env("GITHUB_RUN_NUMBER")), BuildInfoKey.sbtbuildinfoConstantEntry("buildTime", System.currentTimeMillis), BuildInfoKey.sbtbuildinfoConstantEntry("gitCommitId", env("GITHUB_SHA")), BuildInfoKey.sbtbuildinfoConstantEntry( "branch", env("GITHUB_HEAD_REF") .orElse(env("GITHUB_REF")) .orElse(Some("unknown-branch")) .get .stripPrefix("refs/heads/")), )