Skip to content

Commit 1a6b388

Browse files
authored
Enable Develocity build scans (open-telemetry#331)
* Enable Develocity build scans * fix * fix
1 parent 34f5b01 commit 1a6b388

File tree

5 files changed

+55
-3
lines changed

5 files changed

+55
-3
lines changed

.github/workflows/build-common.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ on:
99
no-build-cache:
1010
type: boolean
1111
required: false
12+
secrets:
13+
DEVELOCITY_ACCESS_KEY:
14+
required: false
1215

1316
permissions:
1417
contents: read
@@ -68,14 +71,20 @@ jobs:
6871
build
6972
-PtestJavaVersion=${{ matrix.test-java-version }}
7073
-Porg.gradle.java.installations.paths=${{ steps.setup-java-test.outputs.path }},${{ steps.setup-java.outputs.path }}
74+
env:
75+
DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
7176
- name: generate
7277
# Skip running on macos-latest which doesn't have docker
7378
if: matrix.os == 'ubuntu-latest'
7479
run: ./gradlew generateSemanticConventions --console=plain
80+
env:
81+
DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
7582

7683
# Run spotless after generate to format generated code
7784
- name: spotless
7885
run: ./gradlew spotlessApply
86+
env:
87+
DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
7988

8089
- name: Check that semconv generation is up to date
8190
run: |

.github/workflows/build.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,5 @@ permissions:
1313
jobs:
1414
common:
1515
uses: ./.github/workflows/build-common.yml
16+
secrets:
17+
DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}

.github/workflows/codeql.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,8 @@ jobs:
5656
# --no-daemon is required for codeql to observe the compilation
5757
# (see https://docs.github.com/en/code-security/codeql-cli/getting-started-with-the-codeql-cli/preparing-your-code-for-codeql-analysis#specifying-build-commands)
5858
run: ./gradlew assemble --no-build-cache --no-daemon
59+
env:
60+
DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
5961

6062
- name: Perform CodeQL analysis
6163
uses: github/codeql-action/analyze@16140ae1a102900babc80a33c44059580f687047 # v4.30.9

.github/workflows/release.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ permissions:
88
jobs:
99
build:
1010
uses: ./.github/workflows/build-common.yml
11+
secrets:
12+
DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
1113

1214
release:
1315
permissions:
@@ -41,6 +43,7 @@ jobs:
4143
SONATYPE_KEY: ${{ secrets.SONATYPE_KEY }}
4244
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
4345
GPG_PASSWORD: ${{ secrets.GPG_PASSWORD }}
46+
DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
4447

4548
- name: Set environment variables
4649
run: |
@@ -173,6 +176,7 @@ jobs:
173176
env:
174177
VERSION: ${{ needs.release.outputs.version }}
175178
PRIOR_VERSION: ${{ needs.release.outputs.prior-version }}
179+
DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
176180
run: |
177181
./gradlew japicmp -PapiBaseVersion=$PRIOR_VERSION -PapiNewVersion=$VERSION
178182
./gradlew --refresh-dependencies japicmp

settings.gradle.kts

Lines changed: 38 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,46 @@ dependencyResolutionManagement {
1717
}
1818
}
1919

20+
val develocityServer = "https://develocity.opentelemetry.io"
21+
val isCI = System.getenv("CI") != null
22+
val develocityAccessKey = System.getenv("DEVELOCITY_ACCESS_KEY") ?: ""
23+
24+
// if develocity access key is not given and we are in CI, then we publish to scans.gradle.com
25+
val useScansGradleCom = isCI && develocityAccessKey.isEmpty()
26+
2027
develocity {
28+
if (useScansGradleCom) {
29+
buildScan {
30+
termsOfUseUrl = "https://gradle.com/help/legal-terms-of-use"
31+
termsOfUseAgree = "yes"
32+
}
33+
} else {
34+
server = develocityServer
35+
buildScan {
36+
publishing.onlyIf { it.isAuthenticated }
37+
}
38+
}
39+
2140
buildScan {
22-
publishing.onlyIf { System.getenv("CI") != null }
23-
termsOfUseUrl.set("https://gradle.com/help/legal-terms-of-use")
24-
termsOfUseAgree.set("yes")
41+
uploadInBackground = !isCI
42+
43+
capture {
44+
fileFingerprints = true
45+
}
46+
47+
buildScanPublished {
48+
java.io.File("build-scan.txt").printWriter().use { writer ->
49+
writer.println(buildScanUri)
50+
}
51+
}
52+
}
53+
}
54+
55+
if (!useScansGradleCom) {
56+
buildCache {
57+
remote(develocity.buildCache) {
58+
isPush = isCI && develocityAccessKey.isNotEmpty()
59+
}
2560
}
2661
}
2762

0 commit comments

Comments
 (0)