Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 29 additions & 38 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,8 @@ name: Build
on:
workflow_dispatch:
push:
branches:
branches:
- '!main'
# - '*' # matches every branch that doesn't contain a '/'
# - '*/*' # matches every branch containing a single '/'
# - '**' # matches every branch
# - '!main' # excludes main
pull_request:
branches:
- '**'
Expand All @@ -23,53 +19,48 @@ permissions:

jobs:
test:
# runs-on: self-hosted
runs-on: ubuntu-latest
env:
# define Java options for both official sbt and sbt-extras
JAVA_OPTS: -Xms2048M -Xmx2048M -Xss6M -XX:ReservedCodeCacheSize=256M -Dfile.encoding=UTF-8
JVM_OPTS: -Xms2048M -Xmx2048M -Xss6M -XX:ReservedCodeCacheSize=256M -Dfile.encoding=UTF-8
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up JDK 8
uses: actions/setup-java@v3
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '8'
java-version: '17'
distribution: 'temurin'
# cache: 'sbt'
- name: Setup sbt launcher
uses: sbt/setup-sbt@v1
# - name: Run tests & Coverage Report
# run: sbt coverage test coverageReport
# - name: Upload coverage to Codecov
# uses: codecov/codecov-action@v3
# with:
# files: common/target/scala-2.12/coverage-report/cobertura.xml,core/target/scala-2.12/coverage-report/cobertura.xml,teskit/target/scala-2.12/coverage-report/cobertura.xml
# flags: unittests
# fail_ci_if_error: true
# verbose: true
- name: Run tests
run: STRIPE_CLIENT_ID=${{secrets.STRIPE_CLIENT_ID}} STRIPE_API_KEY=${{secrets.STRIPE_API_KEY}} sbt clean test
env:
STRIPE_CLIENT_ID: ${{secrets.STRIPE_CLIENT_ID}}
STRIPE_API_KEY: ${{secrets.STRIPE_API_KEY}}
# Optional: This step uploads information to the GitHub dependency graph and unblocking Dependabot alerts for the repository
# - name: Upload dependency graph
# uses: scalacenter/sbt-dependency-submission@ab086b50c947c9774b70f39fc7f6e20ca2706c91
- name: Env
run: |
echo "JFROG_USER=${{ secrets.JFROG_USER }}" >> $GITHUB_ENV
echo "JFROG_PASSWORD=${{ secrets.JFROG_PASSWORD }}" >> $GITHUB_ENV
echo "GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }}" >> $GITHUB_ENV
echo "STRIPE_CLIENT_ID=${{ secrets.STRIPE_CLIENT_ID }}" >> $GITHUB_ENV
echo "STRIPE_API_KEY=${{ secrets.STRIPE_API_KEY }}" >> $GITHUB_ENV
echo "CODECOV_TOKEN=${{ secrets.CODECOV_TOKEN }}" >> $GITHUB_ENV
- name: Cross-compile
run: SBT_OPTS="-Xss4M -Xms1g -Xmx4g -Dfile.encoding=UTF-8" sbt '+ Test/compile'
- name: Run tests & Coverage Report
run: SBT_OPTS="-Xss4M -Xms1g -Xmx4g -Dfile.encoding=UTF-8" sbt coverage clean test coverageReport coverageAggregate
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
with:
files: common/target/scala-*/coverage-report/cobertura.xml,core/target/scala-*/coverage-report/cobertura.xml,testkit/target/scala-*/coverage-report/cobertura.xml
flags: unittests
fail_ci_if_error: true
verbose: true

lint:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up JDK 8
uses: actions/setup-java@v3
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '8'
java-version: '17'
distribution: 'temurin'
# cache: 'sbt'
- name: Setup sbt launcher
uses: sbt/setup-sbt@v1
- name: Formatting
run: sbt scalafmtSbtCheck scalafmtCheck test:scalafmtCheck
run: SBT_OPTS="-Xss4M -Xms1g -Xmx4g -Dfile.encoding=UTF-8" sbt scalafmtSbtCheck scalafmtCheck Test/scalafmtCheck
51 changes: 25 additions & 26 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,59 +8,58 @@ name: Release
on:
workflow_dispatch:
push:
branches:
branches:
- 'main'
# - '*' # matches every branch that doesn't contain a '/'
# - '*/*' # matches every branch containing a single '/'
# - '**' # matches every branch
# - '!main' # excludes main

permissions:
contents: read

jobs:
release:
# runs-on: self-hosted
runs-on: ubuntu-latest
env:
# define Java options for both official sbt and sbt-extras
JAVA_OPTS: -Xms2048M -Xmx2048M -Xss6M -XX:ReservedCodeCacheSize=256M -Dfile.encoding=UTF-8
JVM_OPTS: -Xms2048M -Xmx2048M -Xss6M -XX:ReservedCodeCacheSize=256M -Dfile.encoding=UTF-8
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up JDK 8
uses: actions/setup-java@v3
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '8'
java-version: '17'
distribution: 'temurin'
cache: 'sbt'
- name: Setup sbt launcher
uses: sbt/setup-sbt@v1
- name: Env
run: |
echo "JFROG_USER=${{ secrets.JFROG_USER }}" >> $GITHUB_ENV
echo "JFROG_PASSWORD=${{ secrets.JFROG_PASSWORD }}" >> $GITHUB_ENV
echo "GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }}" >> $GITHUB_ENV
echo "STRIPE_CLIENT_ID=${{ secrets.STRIPE_CLIENT_ID }}" >> $GITHUB_ENV
echo "STRIPE_API_KEY=${{ secrets.STRIPE_API_KEY }}" >> $GITHUB_ENV
echo "CODECOV_TOKEN=${{ secrets.CODECOV_TOKEN }}" >> $GITHUB_ENV
- name: Cross-compile
run: SBT_OPTS="-Xss4M -Xms1g -Xmx4g -Dfile.encoding=UTF-8" sbt '+ Test/compile'
- name: Run tests & Coverage Report
run: STRIPE_CLIENT_ID=${{secrets.STRIPE_CLIENT_ID}} STRIPE_API_KEY=${{secrets.STRIPE_API_KEY}} sbt coverage test coverageReport
run: SBT_OPTS="-Xss4M -Xms1g -Xmx4g -Dfile.encoding=UTF-8" sbt coverage test coverageReport coverageAggregate
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
uses: codecov/codecov-action@v4
with:
files: common/target/scala-2.12/coverage-report/cobertura.xml,core/target/scala-2.12/coverage-report/cobertura.xml,teskit/target/scala-2.12/coverage-report/cobertura.xml
files: common/target/scala-*/coverage-report/cobertura.xml,core/target/scala-*/coverage-report/cobertura.xml,testkit/target/scala-*/coverage-report/cobertura.xml
flags: unittests
fail_ci_if_error: true
verbose: true
- name: Publish
run: sbt publish
- name: Cross-publish
run: SBT_OPTS="-Xss4M -Xms1g -Xmx4g -Dfile.encoding=UTF-8" sbt '+ publish'

lint:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up JDK 8
uses: actions/setup-java@v3
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '8'
java-version: '17'
distribution: 'temurin'
# cache: 'sbt'
- name: Setup sbt launcher
uses: sbt/setup-sbt@v1
- name: Formatting
run: sbt scalafmtSbtCheck scalafmtCheck test:scalafmtCheck
run: SBT_OPTS="-Xss4M -Xms1g -Xmx4g -Dfile.encoding=UTF-8" sbt scalafmtSbtCheck scalafmtCheck Test/scalafmtCheck
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ sbt.json
target
.metals
*.log
tmp
tmp
2 changes: 1 addition & 1 deletion api/build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import com.typesafe.sbt.packager.docker._

Compile / mainClass := Some("app.softnetwork.payment.api.SoftPayEndpointsPostgresLauncher")

dockerBaseImage := "openjdk:8"
dockerBaseImage := "eclipse-temurin:17-jdk"

dockerEntrypoint := Seq(s"${(Docker / defaultLinuxInstallLocation).value}/bin/entrypoint.sh")

Expand Down
94 changes: 80 additions & 14 deletions build.sbt
Original file line number Diff line number Diff line change
@@ -1,14 +1,28 @@
lazy val scala212 = "2.12.20"
lazy val scala213 = "2.13.16"
lazy val javacCompilerVersion = "17"
lazy val scalacCompilerOptions = Seq("-deprecation", "-feature")

lazy val moduleSettings = Seq(
crossScalaVersions := Seq(scala212, scala213),
scalacOptions ++= {
CrossVersion.partialVersion(scalaVersion.value) match {
case Some((2, 12)) => scalacCompilerOptions :+ "-Ypartial-unification"
case Some((2, 13)) => scalacCompilerOptions :+ s"-release:$javacCompilerVersion"
case _ => Seq.empty
}
}
)

ThisBuild / organization := "app.softnetwork"

name := "payment"

ThisBuild / version := "0.8.3.1"

ThisBuild / scalaVersion := "2.12.18"
ThisBuild / version := "0.9.0"

ThisBuild / scalacOptions ++= Seq("-deprecation", "-feature", "-target:jvm-1.8", "-Ypartial-unification")
ThisBuild / scalaVersion := scala212

ThisBuild / javacOptions ++= Seq("-source", "1.8", "-target", "1.8", "-Xlint")
ThisBuild / javacOptions ++= Seq("-source", javacCompilerVersion, "-target", javacCompilerVersion, "-Xlint")

ThisBuild / resolvers ++= Seq(
"Softnetwork Server" at "https://softnetwork.jfrog.io/artifactory/releases/",
Expand All @@ -31,49 +45,95 @@ val scalatest = Seq(

ThisBuild / libraryDependencies ++= Seq(
"com.thesamet.scalapb" %% "scalapb-runtime" % scalapb.compiler.Version.scalapbVersion % "protobuf",
"org.scala-lang.modules" %% "scala-parser-combinators" % "1.1.1"
"org.scala-lang.modules" %% "scala-parser-combinators" % "2.4.0",
"org.scala-lang.modules" %% "scala-collection-compat" % "2.11.0",
"org.slf4j" % "slf4j-api" % Versions.slf4j,
"ch.qos.logback" % "logback-classic" % Versions.logback
) ++ scalatest

ThisBuild / libraryDependencySchemes ++= Seq(
"org.scala-lang.modules" %% "scala-xml" % VersionScheme.Always,
"org.scala-lang.modules" %% "scala-parser-combinators" % VersionScheme.Always
)

ThisBuild / javaOptions ++= Seq(
"--add-opens=java.base/java.util=ALL-UNNAMED",
"--add-opens=java.base/java.util.concurrent=ALL-UNNAMED",
"--add-opens=java.base/java.lang=ALL-UNNAMED",
"--add-opens=java.base/java.lang.invoke=ALL-UNNAMED",
"--add-opens=java.base/java.math=ALL-UNNAMED",
"--add-opens=java.base/java.io=ALL-UNNAMED",
"--add-opens=java.base/java.net=ALL-UNNAMED",
"--add-opens=java.base/java.nio=ALL-UNNAMED",
"--add-opens=java.base/java.text=ALL-UNNAMED",
"--add-opens=java.base/java.time=ALL-UNNAMED",
"--add-opens=java.base/sun.nio.ch=ALL-UNNAMED"
)

ThisBuild / Test / fork := true

ThisBuild / Test / javaOptions ++= (ThisBuild / javaOptions).value

Test / parallelExecution := false

lazy val client = project.in(file("client"))
.configs(IntegrationTest)
.settings(Defaults.itSettings, app.softnetwork.Info.infoSettings)
.settings(
Defaults.itSettings,
app.softnetwork.Info.infoSettings,
moduleSettings
)
.enablePlugins(BuildInfoPlugin, AkkaGrpcPlugin, JavaAppPackaging, UniversalDeployPlugin)

lazy val common = project.in(file("common"))
.configs(IntegrationTest)
.settings(Defaults.itSettings)
.settings(
Defaults.itSettings,
moduleSettings
)
.enablePlugins(AkkaGrpcPlugin)
.dependsOn(
client % "compile->compile;test->test;it->it"
)

lazy val core = project.in(file("core"))
.configs(IntegrationTest)
.settings(Defaults.itSettings, app.softnetwork.Info.infoSettings)
.settings(
Defaults.itSettings,
app.softnetwork.Info.infoSettings,
moduleSettings
)
.enablePlugins(BuildInfoPlugin, AkkaGrpcPlugin)
.dependsOn(
common % "compile->compile;test->test;it->it"
)

lazy val mangopay = project.in(file("mangopay"))
.configs(IntegrationTest)
.settings(Defaults.itSettings)
.settings(
Defaults.itSettings,
moduleSettings
)
.dependsOn(
core % "compile->compile;test->test;it->it"
)

lazy val stripe = project.in(file("stripe"))
.configs(IntegrationTest)
.settings(Defaults.itSettings)
.settings(
Defaults.itSettings,
moduleSettings
)
.dependsOn(
core % "compile->compile;test->test;it->it"
)

lazy val api = project.in(file("api"))
.configs(IntegrationTest)
.settings(Defaults.itSettings)
.settings(
Defaults.itSettings,
moduleSettings
)
.enablePlugins(DockerComposePlugin, DockerPlugin, JavaAppPackaging)
.dependsOn(
mangopay % "compile->compile;test->test;it->it"
Expand All @@ -84,7 +144,10 @@ lazy val api = project.in(file("api"))

lazy val testkit = project.in(file("testkit"))
.configs(IntegrationTest)
.settings(Defaults.itSettings)
.settings(
Defaults.itSettings,
moduleSettings
)
.dependsOn(
mangopay % "compile->compile;test->test;it->it"
)
Expand All @@ -95,4 +158,7 @@ lazy val testkit = project.in(file("testkit"))
lazy val root = project.in(file("."))
.aggregate(client, common, core, mangopay, stripe, testkit, api)
.configs(IntegrationTest)
.settings(Defaults.itSettings)
.settings(
Defaults.itSettings,
crossScalaVersions := Nil
)
2 changes: 1 addition & 1 deletion client/build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ libraryDependencies ++= Seq(
"app.softnetwork.account" %% "account-common" % Versions.account,
"app.softnetwork.account" %% "account-common" % Versions.account % "protobuf",
"app.softnetwork.api" %% "generic-server-api" % Versions.genericPersistence,
"app.softnetwork.protobuf" %% "scalapb-extensions" % "0.1.7",
"app.softnetwork.protobuf" %% "scalapb-extensions" % "0.2.0",
"commons-validator" % "commons-validator" % "1.6",
"com.github.scopt" %% "scopt" % Versions.scopt,
"org.scalatra.scalate" %% "scalate-core" % Versions.scalate exclude ("org.scala-lang.modules", "scala-xml_2.12") exclude ("org.scala-lang.modules", "scala-parser-combinators_2.12"),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ class Main extends Completion {
printUsage()
System.exit(1)
case Some(cmd) =>
cmd.run(list) complete () match {
cmd.run(list).complete() match {
case Success((exit, message)) =>
message.foreach(println)
System.exit(exit)
Expand Down
1 change: 1 addition & 0 deletions common/src/main/resources/reference.conf
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ softnetwork {
payment{
baseUrl = "http://localhost:"${softnetwork.api.server.port}"/"${softnetwork.api.server.root-path}
baseUrl = ${?PAYMENT_BASE_URL}
base-url = ${payment.baseUrl}

path = "payment"
path = ${?PAYMENT_PATH}
Expand Down
Loading
Loading