Skip to content

Commit 4e7f805

Browse files
authored
Merge pull request #728 from sigstore/build-info
Add buildinfo at compile time
2 parents 1a0a48c + c891d90 commit 4e7f805

File tree

4 files changed

+58
-1
lines changed

4 files changed

+58
-1
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import buildlogic.BuildInfoTask
2+
3+
plugins {
4+
java
5+
}
6+
7+
val generateBuildInfo by tasks.registering(BuildInfoTask::class) {
8+
version.set(project.version.toString())
9+
genDir.set(project.layout.buildDirectory.dir("generated/buildinfo"))
10+
}
11+
12+
sourceSets.main {
13+
java.srcDir(generateBuildInfo)
14+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package buildlogic
2+
3+
import org.gradle.api.DefaultTask
4+
import org.gradle.api.file.DirectoryProperty
5+
import org.gradle.api.file.RegularFile
6+
import org.gradle.api.provider.Property
7+
import org.gradle.api.provider.Provider
8+
import org.gradle.api.tasks.Input
9+
import org.gradle.api.tasks.InputDirectory
10+
import org.gradle.api.tasks.OutputDirectory
11+
import org.gradle.api.tasks.OutputFile
12+
import org.gradle.api.tasks.TaskAction
13+
14+
abstract class BuildInfoTask : DefaultTask() {
15+
@get:Input
16+
abstract val packageName: Property<String>
17+
18+
@get:Input
19+
abstract val version: Property<String>
20+
21+
@get:OutputDirectory
22+
abstract val genDir: DirectoryProperty
23+
24+
@TaskAction
25+
fun run() {
26+
val output = """
27+
package ${packageName.get()};
28+
29+
public class BuildInfo {
30+
public static final String VERSION = "${version.get()}";
31+
}
32+
""".trimIndent()
33+
val outputPath = genDir.file(packageName.get().replace(".", "/").plus("/BuildInfo.java")).get().asFile
34+
outputPath.parentFile.mkdirs()
35+
outputPath.writeText(output)
36+
}
37+
}

sigstore-java/build.gradle.kts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import com.google.protobuf.gradle.id
33
plugins {
44
id("build-logic.java-published-library")
55
id("build-logic.test-junit5")
6+
id("build-logic.build-info")
67
id("org.jsonschema2dataclass") version "5.0.0"
78
id("com.google.protobuf") version "0.9.4"
89
}
@@ -120,3 +121,7 @@ jsonSchema2Pojo {
120121
tasks.named("sourcesJar") {
121122
dependsOn("generateJsonSchema2DataClassConfigRekor")
122123
}
124+
125+
tasks.generateBuildInfo {
126+
packageName.set("dev.sigstore.buildinfo")
127+
}

sigstore-java/src/main/java/dev/sigstore/http/HttpParams.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
package dev.sigstore.http;
1717

1818
import com.google.api.client.util.Preconditions;
19+
import dev.sigstore.buildinfo.BuildInfo;
1920
import org.immutables.value.Value;
2021

2122
/**
@@ -24,7 +25,7 @@
2425
*/
2526
@Value.Immutable
2627
public abstract class HttpParams {
27-
static final String DEFAULT_USER_AGENT = "sigstoreJavaClient/0.0.1";
28+
static final String DEFAULT_USER_AGENT = "sigstoreJavaClient/" + BuildInfo.VERSION;
2829
static final int DEFAULT_TIMEOUT = 60;
2930
static final boolean DEFAULT_ALLOW_INSECURE_CONNECTIONS = false;
3031

0 commit comments

Comments
 (0)