This is an automated email from the ASF dual-hosted git repository.

fanningpj pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/pekko.git


The following commit(s) were added to refs/heads/main by this push:
     new 763cdb64eb Capture build scans on ge.apache.org to benefit from deep 
build insights (#1288)
763cdb64eb is described below

commit 763cdb64eb5382718a55d1bb3144ea3039fa5f4f
Author: Alexey Venderov <[email protected]>
AuthorDate: Thu Apr 25 17:25:52 2024 +0200

    Capture build scans on ge.apache.org to benefit from deep build insights 
(#1288)
    
    * Capture build scans on ge.apache.org to benefit from deep build insights 
(#1)
    
    * Add Develocity plugin and configure it to publish to Apache Develocity 
instance
    
    * Add Develocity access token to CI jobs
    
    * Use convention plugin to configure Develocity
    
    * Add opt-in property
    
    * Revert "Add opt-in property"
    
    This reverts commit ff556b9764fd6b980b24082a3195ba3fbd22faf6.
    
    * Improve variable name
    
    * Use upper case i in CI abbreviation
---
 .github/workflows/binary-compatibility-checks.yml |  2 +
 .github/workflows/build-test-prValidation.yml     |  4 ++
 .github/workflows/generate-doc-check.yml          |  2 +
 .github/workflows/headers.yml                     |  2 +
 .github/workflows/link-validator.yml              |  2 +
 .github/workflows/nightly-1.0-builds.yml          |  6 +++
 .github/workflows/nightly-builds-aeron.yml        |  2 +
 .github/workflows/nightly-builds.yml              |  6 +++
 .github/workflows/publish-1.0-docs.yml            |  2 +
 .github/workflows/publish-1.0-nightly.yml         |  2 +
 .github/workflows/publish-nightly.yml             |  2 +
 .github/workflows/scala3-build.yml                |  2 +
 .github/workflows/scala3-compile.yml              |  2 +
 .github/workflows/timing-tests.yml                |  2 +
 project/PekkoDevelocityPlugin.scala               | 65 +++++++++++++++++++++++
 project/plugins.sbt                               |  2 +
 16 files changed, 105 insertions(+)

diff --git a/.github/workflows/binary-compatibility-checks.yml 
b/.github/workflows/binary-compatibility-checks.yml
index ac0b2c8674..e87c5afc34 100644
--- a/.github/workflows/binary-compatibility-checks.yml
+++ b/.github/workflows/binary-compatibility-checks.yml
@@ -16,6 +16,8 @@ jobs:
     if: github.repository == 'apache/pekko'
     strategy:
       fail-fast: false
+    env:
+      DEVELOCITY_ACCESS_TOKEN: ${{ secrets.GE_ACCESS_TOKEN }}
     steps:
       - name: Checkout
         uses: actions/checkout@v4
diff --git a/.github/workflows/build-test-prValidation.yml 
b/.github/workflows/build-test-prValidation.yml
index e055908a65..122d56cf75 100644
--- a/.github/workflows/build-test-prValidation.yml
+++ b/.github/workflows/build-test-prValidation.yml
@@ -14,6 +14,8 @@ jobs:
   check-code-style:
     name: Check / Code Style
     runs-on: ubuntu-22.04
+    env:
+      DEVELOCITY_ACCESS_TOKEN: ${{ secrets.GE_ACCESS_TOKEN }}
     steps:
       - name: Checkout
         uses: actions/checkout@v4
@@ -41,6 +43,8 @@ jobs:
   pull-request-validation:
     name: Check / Tests
     runs-on: ubuntu-20.04
+    env:
+      DEVELOCITY_ACCESS_TOKEN: ${{ secrets.GE_ACCESS_TOKEN }}
     steps:
       - name: Checkout
         uses: actions/checkout@v4
diff --git a/.github/workflows/generate-doc-check.yml 
b/.github/workflows/generate-doc-check.yml
index 17d0b4986f..ae19e32d27 100644
--- a/.github/workflows/generate-doc-check.yml
+++ b/.github/workflows/generate-doc-check.yml
@@ -49,4 +49,6 @@ jobs:
           sudo apt-get install graphviz
 
       - name: Compile testClass&docs for all Scala versions
+        env:
+          DEVELOCITY_ACCESS_TOKEN: ${{ secrets.GE_ACCESS_TOKEN }}
         run: sbt ";+TestJdk9 / compile ; +compile:doc"
diff --git a/.github/workflows/headers.yml b/.github/workflows/headers.yml
index c1c0e45ecc..6b51938c4e 100644
--- a/.github/workflows/headers.yml
+++ b/.github/workflows/headers.yml
@@ -23,6 +23,8 @@ jobs:
         uses: coursier/cache-action@v6
 
       - name: Check headers
+        env:
+          DEVELOCITY_ACCESS_TOKEN: ${{ secrets.GE_ACCESS_TOKEN }}
         run: |-
           sbt \
           -Dsbt.override.build.repos=false \
diff --git a/.github/workflows/link-validator.yml 
b/.github/workflows/link-validator.yml
index a9bfb927bd..9f0e863776 100644
--- a/.github/workflows/link-validator.yml
+++ b/.github/workflows/link-validator.yml
@@ -35,6 +35,8 @@ jobs:
         uses: coursier/setup-action@v1
 
       - name: Create the Pekko site
+        env:
+          DEVELOCITY_ACCESS_TOKEN: ${{ secrets.GE_ACCESS_TOKEN }}
         run: |-
           cp .jvmopts-ci .jvmopts
           sbt -Dpekko.genjavadoc.enabled=true 
-Dpekko.genlicensereport.enabled=true "Javaunidoc/doc; Compile/unidoc; 
docs/paradox"
diff --git a/.github/workflows/nightly-1.0-builds.yml 
b/.github/workflows/nightly-1.0-builds.yml
index 282b4c4528..897fbd101f 100644
--- a/.github/workflows/nightly-1.0-builds.yml
+++ b/.github/workflows/nightly-1.0-builds.yml
@@ -33,6 +33,8 @@ jobs:
         run: cp .jvmopts-ci .jvmopts
 
       - name: sbt cluster-metrics/test
+        env:
+          DEVELOCITY_ACCESS_TOKEN: ${{ secrets.GE_ACCESS_TOKEN }}
         run: |-
           sbt \
             -Djava.security.egd=file:/dev/./urandom \
@@ -82,6 +84,8 @@ jobs:
         run: cp .jvmopts-ci .jvmopts
 
       - name: sbt ${{ matrix.command }}
+        env:
+          DEVELOCITY_ACCESS_TOKEN: ${{ secrets.GE_ACCESS_TOKEN }}
         # note that this is not running any multi-jvm tests because 
multi-in-test=false
         run: |-
           sbt \
@@ -127,6 +131,8 @@ jobs:
         run: cp .jvmopts-ci .jvmopts
 
       - name: Compile and Test
+        env:
+          DEVELOCITY_ACCESS_TOKEN: ${{ secrets.GE_ACCESS_TOKEN }}
         # note that this is not running any multi-jvm tests because 
multi-in-test=false
         run: |-
           sbt \
diff --git a/.github/workflows/nightly-builds-aeron.yml 
b/.github/workflows/nightly-builds-aeron.yml
index 42094a4630..aff21337a8 100644
--- a/.github/workflows/nightly-builds-aeron.yml
+++ b/.github/workflows/nightly-builds-aeron.yml
@@ -40,6 +40,8 @@ jobs:
         run: cp .jvmopts-ci .jvmopts
 
       - name: sbt ${{ matrix.command }}
+        env:
+          DEVELOCITY_ACCESS_TOKEN: ${{ secrets.GE_ACCESS_TOKEN }}
         # note that this is not running any multi-jvm tests because 
multi-in-test=false
         run: |-
           sbt \
diff --git a/.github/workflows/nightly-builds.yml 
b/.github/workflows/nightly-builds.yml
index dbc98b6820..2e7247de53 100644
--- a/.github/workflows/nightly-builds.yml
+++ b/.github/workflows/nightly-builds.yml
@@ -32,6 +32,8 @@ jobs:
         run: cp .jvmopts-ci .jvmopts
 
       - name: sbt cluster-metrics/test
+        env:
+          DEVELOCITY_ACCESS_TOKEN: ${{ secrets.GE_ACCESS_TOKEN }}
         run: |-
           sbt \
             -Djava.security.egd=file:/dev/./urandom \
@@ -90,6 +92,8 @@ jobs:
         run: cp .jvmopts-ci .jvmopts
 
       - name: sbt ${{ matrix.command }}
+        env:
+          DEVELOCITY_ACCESS_TOKEN: ${{ secrets.GE_ACCESS_TOKEN }}
         # note that this is not running any multi-jvm tests because 
multi-in-test=false
         run: |-
           sbt \
@@ -114,6 +118,8 @@ jobs:
         # full version from it.
         scalaVersion: ["2.12", "2.13", "3.3"]
         javaVersion: [8, 11, 17, 21]
+    env:
+      DEVELOCITY_ACCESS_TOKEN: ${{ secrets.GE_ACCESS_TOKEN }}
     steps:
       - name: Checkout
         uses: actions/checkout@v4
diff --git a/.github/workflows/publish-1.0-docs.yml 
b/.github/workflows/publish-1.0-docs.yml
index 4cb142af1b..329e346e8a 100644
--- a/.github/workflows/publish-1.0-docs.yml
+++ b/.github/workflows/publish-1.0-docs.yml
@@ -54,6 +54,8 @@ jobs:
 
       # TODO come up with a better way to control the version, possibly based 
on git tags
       - name: Build Documentation
+        env:
+          DEVELOCITY_ACCESS_TOKEN: ${{ secrets.GE_ACCESS_TOKEN }}
         run: |-
           sbt -Dpekko.genjavadoc.enabled=true 
-Dpekko.genlicensereport.enabled=true "set ThisBuild / version := \"1.0.2\"; 
docs/paradox; unidoc"
 
diff --git a/.github/workflows/publish-1.0-nightly.yml 
b/.github/workflows/publish-1.0-nightly.yml
index c5d5afbaba..58b7c8d182 100644
--- a/.github/workflows/publish-1.0-nightly.yml
+++ b/.github/workflows/publish-1.0-nightly.yml
@@ -32,6 +32,8 @@ jobs:
     name: Publish 1.0 nightly
     runs-on: ubuntu-20.04
     if: github.repository == 'apache/pekko'
+    env:
+      DEVELOCITY_ACCESS_TOKEN: ${{ secrets.GE_ACCESS_TOKEN }}
     steps:
       - name: Checkout
         uses: actions/checkout@v4
diff --git a/.github/workflows/publish-nightly.yml 
b/.github/workflows/publish-nightly.yml
index ca7dd876c3..6a75d8c0a2 100644
--- a/.github/workflows/publish-nightly.yml
+++ b/.github/workflows/publish-nightly.yml
@@ -32,6 +32,8 @@ jobs:
     name: Publish nightly
     runs-on: ubuntu-20.04
     if: github.repository == 'apache/pekko'
+    env:
+      DEVELOCITY_ACCESS_TOKEN: ${{ secrets.GE_ACCESS_TOKEN }}
     steps:
       - name: Checkout
         uses: actions/checkout@v4
diff --git a/.github/workflows/scala3-build.yml 
b/.github/workflows/scala3-build.yml
index a4f74f83dc..93d4480602 100644
--- a/.github/workflows/scala3-build.yml
+++ b/.github/workflows/scala3-build.yml
@@ -52,6 +52,8 @@ jobs:
         run: cp .jvmopts-ci .jvmopts
 
       - name: Compile and run tests on Scala 3
+        env:
+          DEVELOCITY_ACCESS_TOKEN: ${{ secrets.GE_ACCESS_TOKEN }}
         # note that this is not running any multi-jvm tests (yet) because 
multi-in-test=false
         run: |
           sbt \
diff --git a/.github/workflows/scala3-compile.yml 
b/.github/workflows/scala3-compile.yml
index dcb1c420bc..85ba15748f 100644
--- a/.github/workflows/scala3-compile.yml
+++ b/.github/workflows/scala3-compile.yml
@@ -50,6 +50,8 @@ jobs:
         run: cp .jvmopts-ci .jvmopts
 
       - name: Compile on Scala 3
+        env:
+          DEVELOCITY_ACCESS_TOKEN: ${{ secrets.GE_ACCESS_TOKEN }}
         run: |
           sbt \
           "+~ 3 ${{ matrix.command }}"
diff --git a/.github/workflows/timing-tests.yml 
b/.github/workflows/timing-tests.yml
index 3720d00e6f..2a68524625 100644
--- a/.github/workflows/timing-tests.yml
+++ b/.github/workflows/timing-tests.yml
@@ -34,6 +34,8 @@ jobs:
         run: cp .jvmopts-ci .jvmopts
 
       - name: sbt test
+        env:
+          DEVELOCITY_ACCESS_TOKEN: ${{ secrets.GE_ACCESS_TOKEN }}
         run: |-
           sbt \
             -Djava.security.egd=file:/dev/./urandom \
diff --git a/project/PekkoDevelocityPlugin.scala 
b/project/PekkoDevelocityPlugin.scala
new file mode 100644
index 0000000000..7fea1dd0bf
--- /dev/null
+++ b/project/PekkoDevelocityPlugin.scala
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import com.gradle.develocity.agent.sbt.DevelocityPlugin
+import com.gradle.develocity.agent.sbt.DevelocityPlugin.autoImport.{
+  develocityConfiguration,
+  FlakyTestPolicy,
+  ProjectId,
+  Publishing
+}
+import sbt.{ url, AutoPlugin, Def, PluginTrigger, Plugins, Setting }
+import sbt.Keys.insideCI
+
+object PekkoDevelocityPlugin extends AutoPlugin {
+
+  private val ApacheDevelocityUrl = url("https://ge.apache.org";)
+  private val PekkoProjectId = ProjectId("pekko")
+  private val ObfuscatedIPv4Address = "0.0.0.0"
+
+  override lazy val trigger: PluginTrigger = allRequirements
+  override lazy val requires: Plugins = DevelocityPlugin
+
+  override lazy val buildSettings: Seq[Setting[_]] = Def.settings(
+    develocityConfiguration := {
+      val isInsideCI = insideCI.value
+
+      val original = develocityConfiguration.value
+      val apacheDevelocityConfiguration =
+        original
+          .withProjectId(PekkoProjectId)
+          .withServer(
+            original.server
+              .withUrl(Some(ApacheDevelocityUrl))
+              .withAllowUntrusted(false))
+          .withBuildScan(
+            original.buildScan
+              .withPublishing(Publishing.onlyIf(_.authenticated))
+              .withBackgroundUpload(!isInsideCI)
+              .withObfuscation(
+                original.buildScan.obfuscation
+                  .withIpAddresses(_.map(_ => ObfuscatedIPv4Address))))
+      if (isInsideCI) {
+        apacheDevelocityConfiguration
+          .withTestRetryConfiguration(
+            original.testRetryConfiguration
+              .withMaxRetries(1)
+              .withFlakyTestPolicy(FlakyTestPolicy.Fail) // preserve the 
original build outcome in case of flaky tests
+          )
+      } else apacheDevelocityConfiguration
+    })
+}
diff --git a/project/plugins.sbt b/project/plugins.sbt
index 569091360c..b68bd21749 100644
--- a/project/plugins.sbt
+++ b/project/plugins.sbt
@@ -32,3 +32,5 @@ addSbtPlugin("com.github.sbt" % "sbt-license-report" % 
"1.6.1")
 addSbtPlugin("io.github.roiocam" % "sbt-depend-walker" % "0.1.1")
 
 addSbtPlugin("org.apache.pekko" % "pekko-sbt-paradox" % "1.0.1")
+
+addSbtPlugin("com.gradle" % "sbt-develocity" % "1.0.1")


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to