diff --git a/.github/workflows/compatibility.yaml b/.github/workflows/compatibility.yaml index b3da1d65b..c0c3eb565 100644 --- a/.github/workflows/compatibility.yaml +++ b/.github/workflows/compatibility.yaml @@ -9,16 +9,20 @@ jobs: compatibility: runs-on: ubuntu-latest steps: - - name: Checkout current branch (full) - uses: actions/checkout@v2 + - name: Checkout current branch + uses: actions/checkout@v3 with: fetch-depth: 0 - - - name: Setup Java (temurin@17) - uses: graalvm/setup-graalvm@v1 + - name: Set up Java + uses: actions/setup-java@v3 with: - distribution: 'graalvm' - java-version: '17' + java-version: 17 + distribution: 'adopt' + cache: 'sbt' + - name: Cache scala dependencies + uses: coursier/cache-action@v6 + - name: Run assembly + run: sbt "apolloCompatibility/assembly" - name: Compatibility Test uses: apollographql/federation-subgraph-compatibility@v2 diff --git a/apollo-compatibility/Dockerfile b/apollo-compatibility/Dockerfile index 34b2ab13e..cab242f54 100644 --- a/apollo-compatibility/Dockerfile +++ b/apollo-compatibility/Dockerfile @@ -1,12 +1,7 @@ FROM sbtscala/scala-sbt:graalvm-ce-22.3.3-b1-java17_1.9.8_2.13.12 AS build -WORKDIR /build +WORKDIR /app COPY build.sbt . -COPY project ./project -COPY core ./core -COPY federation ./federation -COPY adapters/quick ./adapters/quick -COPY macros ./macros -COPY apollo-compatibility/src ./apollo-compatibility/src +COPY apollo-compatibility/target/apollo-subgraph-compatibility.jar /app/artifact.jar EXPOSE 4001 -CMD sbt "apolloCompatibility/run" \ No newline at end of file +CMD java $* -jar artifact.jar \ No newline at end of file diff --git a/build.sbt b/build.sbt index befe38b65..cbcc40979 100644 --- a/build.sbt +++ b/build.sbt @@ -592,6 +592,19 @@ lazy val apolloCompatibility = crossScalaVersions := Seq(scala213), libraryDependencySchemes += "org.scala-lang.modules" %% "scala-java8-compat" % "always" ) + .settings( + assembly / assemblyJarName := s"apollo-subgraph-compatibility.jar", + assembly / mainClass := Some("Main"), + assembly / assemblyOutputPath := { + (assembly / baseDirectory).value / "target" / (assembly / assemblyJarName).value + }, + assembly / test := {}, + assembly / assemblyMergeStrategy := { + case x if Assembly.isConfigFile(x) => MergeStrategy.concat + case PathList("META-INF", "MANIFEST.MF") => MergeStrategy.discard + case _ => MergeStrategy.first + } + ) .dependsOn(federation, core, quickAdapter) lazy val reporting = project diff --git a/project/plugins.sbt b/project/plugins.sbt index fa99143e2..f7442d3a7 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -11,6 +11,7 @@ addSbtPlugin("com.thesamet" % "sbt-protoc" % "1.0.7") addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.12.0") addSbtPlugin("org.scalameta" % "sbt-mdoc" % "2.5.2") addSbtPlugin("com.typesafe" % "sbt-mima-plugin" % "1.1.3") +addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "2.2.0") addSbtPlugin("org.jetbrains.scala" % "sbt-ide-settings" % "1.1.2")