From b8c5ade71c2aac52883d9f10f45ba38a269e21dc Mon Sep 17 00:00:00 2001 From: Mads Opheim <71336041+madsop-nav@users.noreply.github.com> Date: Tue, 17 Sep 2024 15:23:17 +0200 Subject: [PATCH] =?UTF-8?q?EY-4328:=20Samk=C3=B8yre=20implementasjonane,?= =?UTF-8?q?=20rydd=20i=20konfig,=20forenkle=20oppsett=20(#327)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * EY-4328: Tar bort unødig import * Tar bort konfig som ikkje slår til, og som uansett er definert også i pluginane * Vi genererer ikkje java-kode, så tar bort konfigen for det * cutterslade-analyze-pluginen har vi ikkje brukt dei siste par åra, iallfall, så da klarer vi oss nok utan han også framover * Oppdaterer syntaks for å spesifisere kompileringsversjon * Flyttar deklareringa av kotlin-versjon, fint å ha alt av versjonering i build-filene * Tar plugin-buildsrc-konfig for common-modulen inn i common. Per no er det det einaste biblioteket vi har her, vi har ingen umiddelbare planar om å ta inn fleire (som er gradle-konfigurert), så da er det fint å ha det samla, så kan vi heller generalisere igjen ved behov * Tweakar litt på kva som byggjast når, sånn at vi kan bruke Gradle configuration cache også her * Bruker setup gradle-action, som er tilrådd frå Gradle-teamet, heller enn setup java-actionen for caching. Skrur med det samme på Gradle configuration cache for byggejobbane * Slår samna readme-ene ordentleg --- .github/dependabot.yml | 1 - .github/workflows/.build.yaml | 8 ++- .github/workflows/.test.yaml | 3 +- .github/workflows/codeql.yml | 8 ++- .github/workflows/release-common.yaml | 2 +- .github/workflows/verify-branches.yaml | 8 ++- README.md | 63 +++---------------- buildSrc/build.gradle.kts | 25 ++------ .../main/kotlin/etterlatte.common.gradle.kts | 15 ++++- .../src/main/kotlin/etterlatte.gradle.kts | 22 ------- common/build.gradle.kts | 17 ++++- gradle/libs.versions.toml | 4 -- settings.gradle.kts | 4 -- 13 files changed, 62 insertions(+), 118 deletions(-) delete mode 100644 buildSrc/src/main/kotlin/etterlatte.gradle.kts diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 177a2510..d59fc3eb 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -16,7 +16,6 @@ updates: groups: backend: patterns: - - "ca.cutterslade.analyze" - "io.ktor*" - "org.jetbrains.kotlinx*" - "no.nav.security:token*" diff --git a/.github/workflows/.build.yaml b/.github/workflows/.build.yaml index e551a728..ee112f20 100644 --- a/.github/workflows/.build.yaml +++ b/.github/workflows/.build.yaml @@ -25,13 +25,17 @@ jobs: with: distribution: temurin java-version: 21 - cache: gradle - name: Inject slug/short variables uses: rlespinasse/github-slug-action@v4 + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + with: + cache-encryption-key: ${{ secrets.gradlekey }} + dependency-graph: generate-and-submit - name: Gradle test and build env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: ./gradlew :apps:${{ github.workflow }}:build + run: ./gradlew :apps:${{ github.workflow }}:build --configuration-cache - name: Build and publish docker image uses: nais/docker-build-push@v0 diff --git a/.github/workflows/.test.yaml b/.github/workflows/.test.yaml index 171b1cdd..0ce2fd44 100644 --- a/.github/workflows/.test.yaml +++ b/.github/workflows/.test.yaml @@ -16,7 +16,8 @@ jobs: with: distribution: temurin java-version: 21 - cache: gradle + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 - name: Gradle test and build env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 85d4044b..bcd714ca 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -32,13 +32,15 @@ jobs: with: distribution: temurin java-version: 21 - cache: gradle - name: Setup Gradle - uses: gradle/gradle-build-action@v3 + uses: gradle/actions/setup-gradle@v4 + with: + cache-encryption-key: ${{ secrets.gradlekey }} + dependency-graph: generate-and-submit - name: Assemble - run: ./gradlew assemble --no-build-cache --no-configuration-cache + run: ./gradlew assemble -Dorg.gradle.jvmargs="-Dkotlin.daemon.jvmargs=-Xmx16g" --configuration-cache env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/release-common.yaml b/.github/workflows/release-common.yaml index 75c62ec3..7119041e 100644 --- a/.github/workflows/release-common.yaml +++ b/.github/workflows/release-common.yaml @@ -22,7 +22,7 @@ jobs: # Build - name: Test and build - run: ./gradlew :common:build + run: ./gradlew :common:build --configuration-cache release-dev: name: Create Release - Dev diff --git a/.github/workflows/verify-branches.yaml b/.github/workflows/verify-branches.yaml index 9d5d9f8c..e14035b5 100644 --- a/.github/workflows/verify-branches.yaml +++ b/.github/workflows/verify-branches.yaml @@ -16,7 +16,11 @@ jobs: with: distribution: temurin java-version: 21 - cache: gradle + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + with: + cache-encryption-key: ${{ secrets.gradlekey }} + dependency-graph: generate-and-submit # Build - name: Run Gradle Check @@ -24,4 +28,4 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | chmod +x ./gradlew - ./gradlew check + ./gradlew check --configuration-cache \ No newline at end of file diff --git a/README.md b/README.md index 7449a51c..728ca517 100644 --- a/README.md +++ b/README.md @@ -31,10 +31,17 @@ Proxy for å tillate kommunikasjon mellom GCP og On-Prem. [ey-pdfgen](apps/ey-pdfgen) \ Enkel app for opprettelse av PDF til journalføring. Benytter seg av [pdfgen](https://github.com/navikt/pdfgen) +[ey-slackbot](apps/ey-slackbot) \ +Konfigurasjon av slackbot for teamet. + +# Libs + +- [common](common) + # Kom i gang -Noen avhengigheter i prosjektet ligger i Github Package Registry som krever autentisering. Det enkleste er å lage en [PAT (Personal Access Token)](https://github.com/settings/tokens). +Common-biblioteket i prosjektet blir released til Github Package Registry som krever autentisering. For å ta dem i bruk som dependencies i et annet prosjekt er det enkleste er å lage et [PAT (Personal Access Token)](https://github.com/settings/tokens). 1. Opprett [PAT](https://github.com/settings/tokens). I tilfelle lenken ikke fungerer går man til `Github -> Settings -> Developer settings -> Personal access tokens` 2. Huk av `read:packages`. Ikke legg til flere scopes enn nødvendig. @@ -49,15 +56,6 @@ En app bygges og deployes automatisk når en endring legges til i `main`. For å trigge **manuell deploy** kan du gå til `Actions -> (velg workflow) -> Run workflow from ` -# Henvendelser - -Spørsmål knyttet til koden eller prosjektet kan stilles som issues her på GitHub. - - -## For NAV-ansatte - -Interne henvendelser kan sendes via Slack i kanalen [#po-pensjon-team-etterlatte](https://nav-it.slack.com/archives/C01KJ597UAU). - # Utviklerhåndbok ## Pakkestruktur Alle filer under samme source-root skal ha en pakkestruktur som er konsekvent relativt til hverandre @@ -85,7 +83,7 @@ feilen kastes/logges ## Felles kode (common / utils) * Bruk av common er OK. Vurder å dele opp common etter domener og/eller integrasjoner. -* Bruk pensjon-etterlatte-libs for ting som er felles på tvers av apper. +* Bruk common-biblioteket for ting som er felles på tvers av apper. ## Lagring av dato i DB Vi har en egen klasse for håndtering av tidspunkt. Den heter Tidspunkt @@ -134,49 +132,6 @@ Fant ikke ressurs -> 404 eller 204? Noe feilet -> 500 ``` - - ------ -# pensjon-etterlatte-libs - -Felles biblioteker for Team Etterlatte. - - -# Libs - -- [common](common) - - -# Kom i gang - -Pakkene som produseres ved release her lagres i Github Package Registry, som krever autentisering. -For å ta de i bruk som dependencies i et annet prosjekt er det enkleste er å lage et -[PAT (Personal Access Token)](https://github.com/settings/tokens). - -1. [Opprett PAT her](https://github.com/settings/tokens). I tilfelle lenken ikke fungerer går man til `Github -> Settings -> Developer settings -> Personal access tokens` -2. Huk av `read:packages`. Ikke legg til flere scopes enn nødvendig. -3. Autoriser navikt-organisasjonen for SSO ved å velge "Configure SSO" på tokenet -4. Tokenet legges i `.zshrc` med `export GITHUB_TOKEN=` - - -# Felles apper - -Alle apper som er felles for Team Etterlatte ligger i [etterlatte-pensjon-felles](https://github.com/navikt/pensjon-etterlatte-felles). - - -# Kafka / Rapids & Rivers - -Topic.yaml-filer er flyttet til [etterlatte-pensjon-felles](https://github.com/navikt/pensjon-etterlatte-felles). - - -# Bygg og release - - -En app bygges og deployes automatisk når en endring legges til i `main`. - -For å trigge **manuell deploy** kan du gå til `Actions -> (velg workflow) -> Run workflow from ` - - # Henvendelser Spørsmål knyttet til koden eller prosjektet kan stilles som issues her på GitHub. diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 8d09878c..add68bb8 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -1,10 +1,8 @@ -import org.jetbrains.kotlin.gradle.tasks.KotlinCompile -import ca.cutterslade.gradle.analyze.AnalyzeDependenciesTask -import org.gradle.api.tasks.testing.logging.TestLogEvent +import org.jetbrains.kotlin.gradle.dsl.JvmTarget plugins { + kotlin("jvm") version "2.0.20" `kotlin-dsl` - alias(libs.plugins.cutterslade.analyze) apply true } group = "no.nav.etterlatte" @@ -29,22 +27,9 @@ tasks { gradleVersion = "8.10" } - withType { - useJUnitPlatform() - testLogging { - events(TestLogEvent.PASSED, TestLogEvent.SKIPPED, TestLogEvent.FAILED) + kotlin { + compilerOptions { + jvmTarget.set(JvmTarget.JVM_21) } } - - withType { - kotlinOptions.jvmTarget = JavaVersion.VERSION_21.toString() - } - java { - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 - } - withType { - warnUsedUndeclared = true - warnUnusedDeclared = true - } } diff --git a/buildSrc/src/main/kotlin/etterlatte.common.gradle.kts b/buildSrc/src/main/kotlin/etterlatte.common.gradle.kts index f58b014a..c7bfa789 100644 --- a/buildSrc/src/main/kotlin/etterlatte.common.gradle.kts +++ b/buildSrc/src/main/kotlin/etterlatte.common.gradle.kts @@ -1,5 +1,5 @@ -import org.gradle.api.tasks.testing.logging.TestLogEvent import org.gradle.accessors.dm.LibrariesForLibs +import org.gradle.api.tasks.testing.logging.TestLogEvent val libs = the() @@ -46,9 +46,18 @@ tasks { } } + val configuration = + configurations.runtimeClasspath.get().map { + it.toPath().toFile() + } + val buildDirectory = layout.buildDirectory doLast { - configurations.runtimeClasspath.get().forEach { - val file = layout.buildDirectory.file("libs/${it.name}").get().asFile + configuration.forEach { + val file = + buildDirectory + .file("libs/${it.name}") + .get() + .asFile if (!file.exists()) { it.copyTo(file) } diff --git a/buildSrc/src/main/kotlin/etterlatte.gradle.kts b/buildSrc/src/main/kotlin/etterlatte.gradle.kts deleted file mode 100644 index 34b424f8..00000000 --- a/buildSrc/src/main/kotlin/etterlatte.gradle.kts +++ /dev/null @@ -1,22 +0,0 @@ -import org.gradle.accessors.dm.LibrariesForLibs -import org.gradle.api.tasks.testing.logging.TestLogEvent - -val libs = the() - -plugins { - kotlin("jvm") - application -} - -repositories { - mavenCentral() -} - -tasks { - withType { - useJUnitPlatform() - testLogging { - events(TestLogEvent.PASSED, TestLogEvent.SKIPPED, TestLogEvent.FAILED) - } - } -} diff --git a/common/build.gradle.kts b/common/build.gradle.kts index b76ad0e2..4a23f9f4 100644 --- a/common/build.gradle.kts +++ b/common/build.gradle.kts @@ -1,6 +1,12 @@ +import org.gradle.api.tasks.testing.logging.TestLogEvent + plugins { + kotlin("jvm") id("maven-publish") - id("etterlatte") +} + +repositories { + mavenCentral() } dependencies { @@ -16,6 +22,15 @@ dependencies { testImplementation(libs.mockk) } +tasks { + withType { + useJUnitPlatform() + testLogging { + events(TestLogEvent.PASSED, TestLogEvent.SKIPPED, TestLogEvent.FAILED) + } + } +} + publishing { repositories { maven { diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 9b7f65b0..b8a15c70 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,7 +1,3 @@ -[plugins] -cutterslade-analyze = { id = "ca.cutterslade.analyze", version = "1.10.0" } - - [versions] ktor-version = "2.3.12" jupiter-version = "5.11.0" diff --git a/settings.gradle.kts b/settings.gradle.kts index 87d9b43d..50e913c1 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,9 +1,5 @@ rootProject.name = "pensjon-etterlatte-felles" -plugins { - kotlin("jvm") version "2.0.20" apply false -} - include( "apps:etterlatte-proxy", "apps:etterlatte-notifikasjoner",