Giter Club home page Giter Club logo

tms-dependency-admin's Introduction

tms-dependency-admin

Dette prosjektet brukes til å definere og distribuere kotlin-dependencies for Team min-sides prosjekter

Access token

Dette repoet krever et github personal access-token med scopes repo og workflow.

Dette settes som en actions-secret i variablen API_ACCESS_TOKEN.

Organisering av dependencies

Definer et sett med dependencies innen samme gruppe eller område som et interface i buildSrc/src/main/kotlin/default/dependencies.kt

interface BibliotekDefaults: DependencyGroup {
    override val groupId get() = "no.nav.bibliotek"
    override val version get() = "1.0.0"

    val dependencyEn get() = dependency("dependency-en")
    val dependencyTo get() = dependency("dependency-to")
}

Deretter legger du til et object i buildSrc/src/main/kotlin/groups.kt som peker på dette.

object Bibliotek: BibliotekDefaults

Dette objektet brukes i andre prosjekters build.gradke.kts-fil.

dependencies {
  implementation(Bibliotek.dependencyEn)
  implementation(Bibliotek.dependencyTo)
}

Dersom en ønsker en bestemt versjon av en distribuert dependency, eller ønsker helt andre dependencies, kan man legge til dette i en egen fil i sin egen buildSrc.

Her er et eksempel der en overstyrer versjon, legger til en ekstra dependency innen en gruppe, og legger til en helt ny gruppe.

fil: buildSrc/src/main/kotlin/groupsCustom.kt

object Bibliotek_V2: BibliotekDefaults { 
  override val version = "2.0.0"
  
  val dependencyTre = dependency("dependency-tre")
}

object AnnetLib {
    val dependencyABC = "com.domain:abc:1.0.0"
}

Og brukes slik:

dependencies {
  implementation(Bibliotek_V2.dependencyEn)
  implementation(Bibliotek_v2.dependencyTo)
  implementation(Bibliotek_v2.dependencyTre)
  implementation(AnnetLib.dependencyABC)
}

Distribusjon

Dependency-config distribueres til alle apper definert i config/managed_apps.conf når det gjøres endringer i buildSrc/src/main/kotlin/default/dependencies.kt eller buildSrc/src/main/kotlin/groups.kt. Endringene plasseres på en egen branch i mål-prosjektet, og trigger et workflow som verifiserer at endringene ikke brekker bygg, og så merger til main.

Denne workflowen vil også distribueres til de enkelte prosjektene dersom de ikke har den, eller ikke har nyeste versjon.

Dersom en ønsker å publisere dependencies til ett bestemt prosjekt kan en bruke workflow-dispatch. Dette prosjektet trenger ikke være i managed_apps.conf

Snyk

Dependencies som distribueres herfra scannes av Snyk hver dag, som finnes potensielle problemer og svakheter.

Resultat av scan finner en på snyk-dashboard.

Henvendelser

Spørsmål knyttet til koden eller prosjektet kan rettes mot https://github.com/orgs/navikt/teams/personbruker

For NAV-ansatte

Interne henvendelser kan sendes via Slack i kanalen #team-personbruker.

tms-dependency-admin's People

Contributors

chris-santa avatar rannveigskjerve avatar amirhlotfi avatar

Watchers

Truls Jørgensen avatar Sergio A. Arevalo Soria avatar  avatar

tms-dependency-admin's Issues

Oppdater prometheus fra 0.16.0 til 1.x.x

Prometheus-klienten er på gammel 0.16.0-versjon fra 2022. Denne bør bumpes til 1.2.1+.

Dette er en breaking change som potensielt krever endring av metrikker.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.