build.sbt (52 lines of code) (raw):
import com.gu.riffraff.artifact.BuildInfo
name := "google-search-indexing-observatory"
organization := "com.gu"
description:= "Checking how long it takes content published by news organisations to be available in Google search"
version := "1.0"
scalaVersion := "3.3.1"
scalacOptions ++= Seq(
"-deprecation",
"-encoding", "UTF-8"
)
val catsVersion = "2.10.0"
libraryDependencies ++= Seq(
"com.amazonaws" % "aws-lambda-java-core" % "1.2.3",
"com.amazonaws" % "aws-lambda-java-events" % "3.11.4",
"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.5.0",
"com.lihaoyi" %% "upickle" % "3.2.0",
"com.squareup.okhttp3" % "okhttp" % "4.12.0",
"com.madgag" %% "scala-collection-plus" % "0.11",
"org.scanamo" %% "scanamo" % "1.0.0-M30",
"org.scalatest" %% "scalatest" % "3.2.18" % Test,
"org.typelevel" %% "cats-core" % catsVersion,
"org.typelevel" %% "alleycats-core" % catsVersion,
"com.bnsal" % "sitemap-parser" % "1.0.3",
"org.typelevel" %% "literally" % "1.1.0" % Test,
"com.github.blemale" %% "scaffeine" % "5.2.1",
"com.gu" %% "redirect-resolver" % "0.0.35"
) ++ Seq("ssm", "url-connection-client").map(artifact => "software.amazon.awssdk" % artifact % "2.25.28")
Test / testOptions +=
Tests.Argument(TestFrameworks.ScalaTest, "-u", s"test-results/scala-${scalaVersion.value}", "-o")
enablePlugins(RiffRaffArtifact, BuildInfoPlugin)
assemblyJarName := s"${name.value}.jar"
riffRaffPackageType := assembly.value
riffRaffArtifactResources := Seq(
(assembly/assemblyOutputPath).value -> s"${name.value}/${name.value}.jar",
file("cdk/cdk.out/GoogleSearchIndexingObservatory-PROD.template.json") -> s"cdk.out/GoogleSearchIndexingObservatory-PROD.template.json",
file("cdk/cdk.out/riff-raff.yaml") -> s"riff-raff.yaml"
)
assembly / assemblyMergeStrategy := {
case PathList("META-INF", "MANIFEST.MF") => MergeStrategy.discard
case _ => MergeStrategy.first
}
buildInfoPackage := "ophan.google.indexing.observatory"
buildInfoKeys := {
lazy val buildInfo = BuildInfo(baseDirectory.value)
Seq[BuildInfoKey](
"buildNumber" -> buildInfo.buildIdentifier,
"gitCommitId" -> buildInfo.revision,
"buildTime" -> System.currentTimeMillis
)
}