From 8a50521a49a00458b1bfd6980a70232b1594ea1e Mon Sep 17 00:00:00 2001 From: Konstantin Chukharev Date: Thu, 24 Jul 2025 16:04:12 +0300 Subject: [PATCH 1/5] Use jacodb from GitHub Packages Registry --- buildSrc/src/main/kotlin/Dependencies.kt | 5 ++-- buildSrc/src/main/kotlin/JacodbRepository.kt | 28 +++++++++++++++++++ .../kotlin/usvm.kotlin-conventions.gradle.kts | 2 ++ usvm-jvm/usvm-jvm-api/build.gradle.kts | 2 ++ 4 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 buildSrc/src/main/kotlin/JacodbRepository.kt diff --git a/buildSrc/src/main/kotlin/Dependencies.kt b/buildSrc/src/main/kotlin/Dependencies.kt index 1e312d34fe..04baadb688 100644 --- a/buildSrc/src/main/kotlin/Dependencies.kt +++ b/buildSrc/src/main/kotlin/Dependencies.kt @@ -6,7 +6,7 @@ object Versions { const val clikt = "5.0.0" const val detekt = "1.23.7" const val ini4j = "0.5.4" - const val jacodb = "5acbadfed0" + const val jacodb = "20250731+081adc27" const val juliet = "1.3.2" const val junit = "5.9.3" const val kotlin = "2.1.0" @@ -116,7 +116,8 @@ object Libs { ) // https://github.com/UnitTestBot/jacodb - private const val jacodbPackage = "com.github.UnitTestBot.jacodb" // use "org.jacodb" with includeBuild + // private const val jacodbPackage = "com.github.UnitTestBot.jacodb" // JitPack + private const val jacodbPackage = "org.jacodb" // GitHub Packages Registry val jacodb_core = dep( group = jacodbPackage, name = "jacodb-core", diff --git a/buildSrc/src/main/kotlin/JacodbRepository.kt b/buildSrc/src/main/kotlin/JacodbRepository.kt new file mode 100644 index 0000000000..2d59db35e6 --- /dev/null +++ b/buildSrc/src/main/kotlin/JacodbRepository.kt @@ -0,0 +1,28 @@ +import org.gradle.api.Project +import org.gradle.kotlin.dsl.maven +import org.gradle.kotlin.dsl.repositories + +/** + * Set up GitHub Packages Registry for `jacodb`. + * + * To use this GPR locally, you need to set the `gpr.user` and `gpr.key` properties + * in your `~/.gradle/gradle.properties` file, for example: + * ``` + * gpr.user=your-github-username + * gpr.key=your-github-token + * ``` + * Note: token must have "packages: read" permissions. + * + * On CI, provide `GITHUB_ACTOR` and `GITHUB_TOKEN` environment variables. + */ +fun Project.setupJacodbGitHubPackagesRepository() { + repositories { + maven { + url = uri("https://maven.pkg.github.com/UnitTestBot/jacodb") + credentials { + username = findProperty("gpr.user") as String? ?: System.getenv("GITHUB_ACTOR") + password = findProperty("gpr.key") as String? ?: System.getenv("GITHUB_TOKEN") + } + } + } +} diff --git a/buildSrc/src/main/kotlin/usvm.kotlin-conventions.gradle.kts b/buildSrc/src/main/kotlin/usvm.kotlin-conventions.gradle.kts index 1ae09d4c0e..da4eaf3e84 100644 --- a/buildSrc/src/main/kotlin/usvm.kotlin-conventions.gradle.kts +++ b/buildSrc/src/main/kotlin/usvm.kotlin-conventions.gradle.kts @@ -14,6 +14,8 @@ repositories { maven("https://jitpack.io") } +setupJacodbGitHubPackagesRepository() + dependencies { // Align versions of all Kotlin components implementation(platform(kotlin("bom", Versions.kotlin))) diff --git a/usvm-jvm/usvm-jvm-api/build.gradle.kts b/usvm-jvm/usvm-jvm-api/build.gradle.kts index c65a6b634b..a68fc36928 100644 --- a/usvm-jvm/usvm-jvm-api/build.gradle.kts +++ b/usvm-jvm/usvm-jvm-api/build.gradle.kts @@ -31,6 +31,8 @@ repositories { maven("https://jitpack.io") } +setupJacodbGitHubPackagesRepository() + dependencies { compileOnly(Libs.jacodb_api_jvm) } From 9391c7e7c61e049414b8d9fcfafd642e5082156d Mon Sep 17 00:00:00 2001 From: Konstantin Chukharev Date: Thu, 31 Jul 2025 16:57:04 +0300 Subject: [PATCH 2/5] Use global `GITHUB_TOKEN` and `GITHUB_ACTOR` env vars --- .github/workflows/ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a82636cfac..fdc8e0c301 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,6 +10,8 @@ on: env: JAVA: 11 JAVA_DISTRIBUTION: zulu + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_ACTOR: ${{ github.actor }} jobs: ci-core: From 7c17bb178a80ea8a49e8ecc5c569ba2e578dc0e6 Mon Sep 17 00:00:00 2001 From: Konstantin Chukharev Date: Mon, 4 Aug 2025 15:52:26 +0300 Subject: [PATCH 3/5] Add `githubPackages` function to setup maven repository for GPR --- buildSrc/src/main/kotlin/GitHubPackages.kt | 32 +++++++++++++++++++ buildSrc/src/main/kotlin/JacodbRepository.kt | 28 ---------------- .../kotlin/usvm.kotlin-conventions.gradle.kts | 3 +- usvm-jvm/usvm-jvm-api/build.gradle.kts | 3 +- 4 files changed, 34 insertions(+), 32 deletions(-) create mode 100644 buildSrc/src/main/kotlin/GitHubPackages.kt delete mode 100644 buildSrc/src/main/kotlin/JacodbRepository.kt diff --git a/buildSrc/src/main/kotlin/GitHubPackages.kt b/buildSrc/src/main/kotlin/GitHubPackages.kt new file mode 100644 index 0000000000..95dae13512 --- /dev/null +++ b/buildSrc/src/main/kotlin/GitHubPackages.kt @@ -0,0 +1,32 @@ +import org.gradle.api.Project +import org.gradle.api.artifacts.dsl.RepositoryHandler +import org.gradle.api.artifacts.repositories.MavenArtifactRepository + +/** + * Set up GitHub Packages Registry for a specific repository. + * + * To use this GPR locally, you need to set the `gpr.user` and `gpr.key` properties + * in your `~/.gradle/gradle.properties` file, for example: + * ``` + * gpr.user=your-github-username + * gpr.key=your-github-token + * ``` + * Note: token must have "packages: read" permissions. + * + * On CI, provide `GITHUB_ACTOR` and `GITHUB_TOKEN` environment variables. + */ +fun RepositoryHandler.githubPackages( + project: Project, + repo: String, + setup: MavenArtifactRepository.() -> Unit = {}, +) = with(project) { + maven { + name = "GitHubPackages" + url = uri("https://maven.pkg.github.com/$repo") + credentials { + username = findProperty("gpr.user") as String? ?: System.getenv("USERNAME") + password = findProperty("gpr.key") as String? ?: System.getenv("TOKEN") + } + setup() + } +} diff --git a/buildSrc/src/main/kotlin/JacodbRepository.kt b/buildSrc/src/main/kotlin/JacodbRepository.kt deleted file mode 100644 index 2d59db35e6..0000000000 --- a/buildSrc/src/main/kotlin/JacodbRepository.kt +++ /dev/null @@ -1,28 +0,0 @@ -import org.gradle.api.Project -import org.gradle.kotlin.dsl.maven -import org.gradle.kotlin.dsl.repositories - -/** - * Set up GitHub Packages Registry for `jacodb`. - * - * To use this GPR locally, you need to set the `gpr.user` and `gpr.key` properties - * in your `~/.gradle/gradle.properties` file, for example: - * ``` - * gpr.user=your-github-username - * gpr.key=your-github-token - * ``` - * Note: token must have "packages: read" permissions. - * - * On CI, provide `GITHUB_ACTOR` and `GITHUB_TOKEN` environment variables. - */ -fun Project.setupJacodbGitHubPackagesRepository() { - repositories { - maven { - url = uri("https://maven.pkg.github.com/UnitTestBot/jacodb") - credentials { - username = findProperty("gpr.user") as String? ?: System.getenv("GITHUB_ACTOR") - password = findProperty("gpr.key") as String? ?: System.getenv("GITHUB_TOKEN") - } - } - } -} diff --git a/buildSrc/src/main/kotlin/usvm.kotlin-conventions.gradle.kts b/buildSrc/src/main/kotlin/usvm.kotlin-conventions.gradle.kts index da4eaf3e84..eafdd3720d 100644 --- a/buildSrc/src/main/kotlin/usvm.kotlin-conventions.gradle.kts +++ b/buildSrc/src/main/kotlin/usvm.kotlin-conventions.gradle.kts @@ -11,11 +11,10 @@ group = "org.usvm" repositories { mavenCentral() + githubPackages(project, "UnitTestBot/jacodb") maven("https://jitpack.io") } -setupJacodbGitHubPackagesRepository() - dependencies { // Align versions of all Kotlin components implementation(platform(kotlin("bom", Versions.kotlin))) diff --git a/usvm-jvm/usvm-jvm-api/build.gradle.kts b/usvm-jvm/usvm-jvm-api/build.gradle.kts index a68fc36928..2352a7c6ad 100644 --- a/usvm-jvm/usvm-jvm-api/build.gradle.kts +++ b/usvm-jvm/usvm-jvm-api/build.gradle.kts @@ -28,11 +28,10 @@ tasks { repositories { mavenCentral() + githubPackages(project, "UnitTestBot/jacodb") maven("https://jitpack.io") } -setupJacodbGitHubPackagesRepository() - dependencies { compileOnly(Libs.jacodb_api_jvm) } From 354563263d07ab9ae6fe07c763deced41293a751 Mon Sep 17 00:00:00 2001 From: Konstantin Chukharev Date: Mon, 4 Aug 2025 15:56:12 +0300 Subject: [PATCH 4/5] Fix env vars --- buildSrc/src/main/kotlin/GitHubPackages.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/buildSrc/src/main/kotlin/GitHubPackages.kt b/buildSrc/src/main/kotlin/GitHubPackages.kt index 95dae13512..2b865dacf2 100644 --- a/buildSrc/src/main/kotlin/GitHubPackages.kt +++ b/buildSrc/src/main/kotlin/GitHubPackages.kt @@ -24,8 +24,8 @@ fun RepositoryHandler.githubPackages( name = "GitHubPackages" url = uri("https://maven.pkg.github.com/$repo") credentials { - username = findProperty("gpr.user") as String? ?: System.getenv("USERNAME") - password = findProperty("gpr.key") as String? ?: System.getenv("TOKEN") + username = findProperty("gpr.user") as String? ?: System.getenv("GITHUB_ACTOR") + password = findProperty("gpr.key") as String? ?: System.getenv("GITHUB_TOKEN") } setup() } From be5319cd355e92dda8744e957e90f922e1ea6350 Mon Sep 17 00:00:00 2001 From: Konstantin Chukharev Date: Tue, 5 Aug 2025 19:34:34 +0300 Subject: [PATCH 5/5] Bump jacodb --- buildSrc/src/main/kotlin/Dependencies.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/src/main/kotlin/Dependencies.kt b/buildSrc/src/main/kotlin/Dependencies.kt index 04baadb688..2268063dbc 100644 --- a/buildSrc/src/main/kotlin/Dependencies.kt +++ b/buildSrc/src/main/kotlin/Dependencies.kt @@ -6,7 +6,7 @@ object Versions { const val clikt = "5.0.0" const val detekt = "1.23.7" const val ini4j = "0.5.4" - const val jacodb = "20250731+081adc27" + const val jacodb = "lipen-snapshot+a9f47fd3" const val juliet = "1.3.2" const val junit = "5.9.3" const val kotlin = "2.1.0"