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

ppkarwasz pushed a commit to branch feat/add-build-reusable-workflows
in repository https://gitbox.apache.org/repos/asf/logging-flume.git

commit 10daf08b44501ce5fe7a89230c9c8d93441f2532
Author: Piotr P. Karwasz <[email protected]>
AuthorDate: Tue Jul 28 21:23:52 2026 +0200

    Build with the `logging-parent` reusable workflows
    
    Flume no longer maintains its own checkout, JDK and Maven steps, and gains
    snapshot/release deployment and reproducibility verification in exchange.
    
    Assisted-By: Claude Fable 5 <[email protected]>
---
 .github/workflows/build.yaml | 90 ++++++++++++++++++++++++++++++++++++++++++++
 .github/workflows/build.yml  | 77 -------------------------------------
 2 files changed, 90 insertions(+), 77 deletions(-)

diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
new file mode 100644
index 00000000..d33b402b
--- /dev/null
+++ b/.github/workflows/build.yaml
@@ -0,0 +1,90 @@
+#
+# 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.
+#
+
+name: build
+
+on:
+  push:
+    branches:
+      - "trunk"
+      - "release/*"
+  pull_request:
+
+# Disable all permissions by defaults:
+# Permissions are enabled on a per-job basis.
+permissions: { }
+
+concurrency:
+  # One group per PR, or per ref for branch pushes.
+  group: ${{ github.workflow }}-${{ github.event.pull_request.number || 
github.ref }}
+  # Cancel in-progress runs for PRs only, so release branch builds always 
complete.
+  cancel-in-progress: ${{ github.event_name == 'pull_request' }}
+
+jobs:
+
+  build:
+    uses: apache/logging-parent/.github/workflows/build-reusable.yaml@gha/v0
+    with:
+      java-version: 17
+      site-enabled: true
+      reproducibility-check-enabled: false
+
+  deploy-snapshot:
+    needs: build
+    if: github.repository == 'apache/logging-flume' && github.ref_name == 
'trunk'
+    uses: 
apache/logging-parent/.github/workflows/deploy-snapshot-reusable.yaml@gha/v0
+    # Secrets for deployments
+    secrets:
+      NEXUS_USERNAME: ${{ secrets.LOGGING_STAGE_DEPLOYER_USER }}
+      NEXUS_PASSWORD: ${{ secrets.LOGGING_STAGE_DEPLOYER_PW }}
+    with:
+      java-version: 17
+
+  deploy-release:
+    needs: build
+    if: github.repository == 'apache/logging-flume' && 
startsWith(github.ref_name, 'release/')
+    uses: 
apache/logging-parent/.github/workflows/deploy-release-reusable.yaml@gha/v0
+    # Secrets for deployments
+    secrets:
+      GPG_SECRET_KEY: ${{ secrets.LOGGING_GPG_SECRET_KEY }}
+      NEXUS_USERNAME: ${{ secrets.LOGGING_STAGE_DEPLOYER_USER }}
+      NEXUS_PASSWORD: ${{ secrets.LOGGING_STAGE_DEPLOYER_PW }}
+      SVN_USERNAME: ${{ secrets.LOGGING_SVN_DEV_USERNAME }}
+      SVN_PASSWORD: ${{ secrets.LOGGING_SVN_DEV_PASSWORD }}
+    # Write permissions to allow the Maven `revision` property update, 
changelog release, etc.
+    permissions:
+      contents: write
+    with:
+      java-version: 17
+      project-id: flume
+
+  verify-reproducibility-snapshot:
+    needs: deploy-snapshot
+    uses: 
apache/logging-parent/.github/workflows/verify-reproducibility-reusable.yaml@gha/v0
+    with:
+      java-version: 17
+      # Compare against the repository `deploy-snapshot` uploaded as a run 
artifact, so that
+      # the check does not depend on the snapshot having propagated to the 
Nexus group repository.
+      reference-artifact-name: ${{ 
needs.deploy-snapshot.outputs.repository-artifact-name }}
+
+  verify-reproducibility-release:
+    needs: deploy-release
+    uses: 
apache/logging-parent/.github/workflows/verify-reproducibility-reusable.yaml@gha/v0
+    with:
+      java-version: 17
+      # `deploy-release` publishes no run artifact, so the staging repository 
is the reference.
+      nexus-url: ${{ needs.deploy-release.outputs.nexus-url }}
\ No newline at end of file
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
deleted file mode 100644
index afbb2120..00000000
--- a/.github/workflows/build.yml
+++ /dev/null
@@ -1,77 +0,0 @@
-#
-# 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.
-#
-
-name: build
-
-on:
-  push:
-    branches:
-      - trunk
-      - build-dev
-  pull_request:
-
-# Remove all permissions by default. They will be added at a job level.
-permissions: {}
-
-concurrency:
-  # One group per PR, or per ref for branch pushes.
-  group: ${{ github.workflow }}-${{ github.event.pull_request.number || 
github.ref }}
-  # Cancel in-progress runs for PRs only, so release branch builds always 
complete.
-  cancel-in-progress: ${{ github.event_name == 'pull_request' }}
-
-jobs:
-  build:
-
-    runs-on: ${{ matrix.os }}
-    name: build (${{ matrix.os }})
-
-    strategy:
-      # Don't cancel the remaining OS builds when one fails
-      fail-fast: false
-      matrix:
-        os: [ ubuntu-latest ]
-        java-distribution: [ temurin ]
-        #
-        # There is no protobuf 2.x version for `aarch64`.
-        # Reenable the macOS build after the dependency has been upgraded.
-        #
-        #include:
-        #  # There is no Temurin JDK 8 for ARM
-        #  - os: macos-latest
-        #    java-distribution: zulu
-
-    steps:
-
-      - name: Checkout repository
-        uses: actions/checkout@v6
-
-      # JDK 8 is needed for the build, and it is the primary bytecode target.
-      - name: Setup JDK 17
-        uses: actions/setup-java@v5
-        with:
-          distribution: ${{ matrix.java-distribution }}
-          java-version: 17
-          cache: maven
-
-      - name: Build with Maven
-        timeout-minutes: 120
-        shell: bash
-        run: |
-          ./mvnw clean verify -DredirectTestOutput=true \
-          --show-version --batch-mode --errors --no-transfer-progress \
-          -DtrimStackTrace=false \
-          -Dsurefire.rerunFailingTestsCount=2

Reply via email to