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
48 changes: 28 additions & 20 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@ 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
# - '!main' # excludes main
pull_request:
branches:
- '**'
Expand All @@ -23,27 +23,33 @@ 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
# runs-on: self-hosted
runs-on: ubuntu-latest
steps:
- 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 "CODECOV_TOKEN=${{ secrets.CODECOV_TOKEN }}" >> $GITHUB_ENV
- 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: Cross Compile
run: SBT_OPTS="-Xss4M -Xms1g -Xmx4g -Dfile.encoding=UTF-8" sbt '+ Test/compile'
- name: Run tests & Coverage Report
run: sbt coverage test coverageReport
run: SBT_OPTS="-Xss4M -Xms1g -Xmx4g -Dfile.encoding=UTF-8" sbt coverage test coverageReport
- 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
Expand All @@ -52,12 +58,14 @@ jobs:
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 scalafmtSbtCheck scalafmtCheck Test/scalafmtCheck
59 changes: 45 additions & 14 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,32 +8,63 @@ 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
# - '!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
# runs-on: self-hosted
runs-on: ubuntu-latest
steps:
- 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 "CODECOV_TOKEN=${{ secrets.CODECOV_TOKEN }}" >> $GITHUB_ENV
- 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: Run tests & publish
run: sbt test publish
- name: Setup sbt launcher
uses: sbt/setup-sbt@v1
- 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 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: false
verbose: true
- name: Publish
run: SBT_OPTS="-Xss4M -Xms1g -Xmx4g" sbt '+ publish'

lint:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
# cache: 'sbt'
- name: Setup sbt launcher
uses: sbt/setup-sbt@v1
- name: Formatting
run: sbt scalafmtSbtCheck scalafmtCheck Test/scalafmtCheck
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,4 @@ sbt.json
target
.metals
*.log
actions-runner
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.persistence.auth.api.BasicAccountEndpointsPostgresLauncher")

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

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

Expand Down
75 changes: 64 additions & 11 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
case Some((2, 13)) => scalacCompilerOptions :+ s"-release:$javacCompilerVersion"
case _ => Seq.empty
}
}
)

ThisBuild / organization := "app.softnetwork"

name := "account"

ThisBuild / version := "0.7.4"

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

ThisBuild / scalacOptions ++= Seq("-deprecation", "-feature", "-target:jvm-1.8")
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 @@ -25,34 +39,70 @@ 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" % "1.1.2",
"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 += "org.scala-lang.modules" %% "scala-xml" % 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 common = project.in(file("common"))
.configs(IntegrationTest)
.settings(Defaults.itSettings)
.settings(
Defaults.itSettings,
moduleSettings
)
.enablePlugins(AkkaGrpcPlugin)

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)
.dependsOn(
common % "compile->compile;test->test;it->it"
)

lazy val testkit = project.in(file("testkit"))
.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(
core % "compile->compile;test->test;it->it"
Expand All @@ -61,4 +111,7 @@ lazy val api = project.in(file("api"))
lazy val root = project.in(file("."))
.aggregate(common, core, testkit, api)
.configs(IntegrationTest)
.settings(Defaults.itSettings)
.settings(
Defaults.itSettings,
crossScalaVersions := Nil
)
2 changes: 1 addition & 1 deletion common/build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ libraryDependencies ++= Seq(
"app.softnetwork.notification" %% "notification-common" % Versions.notification,
"app.softnetwork.notification" %% "notification-common" % Versions.notification % "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"
)

Compile / unmanagedResourceDirectories += baseDirectory.value / "src/main/protobuf"
Expand Down
15 changes: 15 additions & 0 deletions common/src/main/resources/reference.conf
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,13 @@ notification {
push {
clientId = "auth"
clientId = ${?AUTH_PUSH_CLIENT_ID}
client-id = ${notification.push.clientId}
}

sms {
clientId = "auth"
clientId = ${?AUTH_SMS_CLIENT_ID}
client-id = ${notification.sms.clientId}
name = "nobody"
name = ${?NOTIFICATION_SMS_NAME}
}
Expand All @@ -16,13 +18,16 @@ notification {
auth {
baseUrl = "http://localhost/api"
baseUrl = ${?AUTH_BASE_URL}
base-url = ${auth.baseUrl}

realm = "Realm"

resetPasswordUrl = "http://localhost/reset_password.html"
resetPasswordUrl = ${?AUTH_RESET_PASSWORD_URL}
reset-password-url = ${auth.resetPasswordUrl}

regenerationOfThePasswordResetToken = true
regeneration-of-the-password-reset-token = ${auth.regenerationOfThePasswordResetToken}

akka-node-role = accounts

Expand All @@ -31,6 +36,7 @@ auth {
token {
expirationTime = 1440
expirationTime = ${?AUTH_ACTIVATION_TOKEN_EXPIRATION_TIME}
expiration-time = ${auth.activation.token.expirationTime}
}
}

Expand All @@ -41,10 +47,12 @@ auth {

size = ${?AUTH_VERIFICATION_CODE_SIZE}
expirationTime = ${?AUTH_VERIFICATION_CODE_EXPIRATION_TIME}
expiration-time = ${auth.verification.code.expirationTime}
}
token {
expirationTime = 10
expirationTime = ${?AUTH_VERIFICATION_TOKEN_EXPIRATION_TIME}
expiration-time = ${auth.verification.token.expirationTime}
}
gsm {
enabled = true
Expand All @@ -65,19 +73,23 @@ auth {
upperCaseCharacter{
size = 1
}
upper-case-character = ${auth.password.upperCaseCharacter}
lowerCaseCharacter{
size = 1
}
lower-case-character = ${auth.password.lowerCaseCharacter}
numberCharacter{
size = 1
}
number-character = ${auth.password.numberCharacter}
}

anonymous {
password = "ChangeIt1!"
}

maxLoginFailures = 4
max-login-failures = ${auth.maxLoginFailures}

notifications {
activation = "Activation"
Expand Down Expand Up @@ -118,16 +130,19 @@ auth {
authorization-code {
expirationTime = 5
expirationTime = ${?AUTH_AUTHORIZATION_CODE_EXPIRATION_TIME}
expiration-time = ${auth.oauth.authorization-code.expirationTime}
}

access-token {
expirationTime = 30
expirationTime = ${?AUTH_ACCESS_TOKEN_EXPIRATION_TIME}
expiration-time = ${auth.oauth.access-token.expirationTime}
}

refresh-token {
expirationTime = 525600 // 60 * 24 * 365
expirationTime = ${?AUTH_REFRESH_TOKEN_EXPIRATION_TIME}
expiration-time = ${auth.oauth.refresh-token.expirationTime}
}

providers {
Expand Down
Loading
Loading