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

ppkarwasz pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/logging-flume.git

commit 7e82cd289c65f933ecae3315cf9817a66a711188
Author: Piotr P. Karwasz <[email protected]>
AuthorDate: Fri Jul 31 22:31:46 2026 +0200

    Build with the `logging-parent` reusable workflows (#470)
    
    * 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]>
    
    * Skip Taildir tests on non-POSIX file systems
    
    TaildirSource tracks files by inode, so its tests cannot pass when the
    default file system lacks a `unix` attribute view (e.g. on Windows).
    Document that requirement in the user guide.
    
    Assisted-By: Claude Fable 5 <[email protected]>
    
    * Formatting
    
    * Fix race condition in TestSyslogTcpSource.testSSLMessages
    
    The test read from the channel immediately after closing the client
    socket, but the source delivers events asynchronously, so the take
    could return null on slow machines (first seen on Windows CI).
    
    Wait for the source counter with Awaitility and close the TLS socket
    gracefully, flushing before close.
    
    Assisted-By: Claude Fable 5 <[email protected]>
    
    * Keep the client socket open until the syslog event is committed
    
    The Windows CI logs show the TLS handshake succeeding and the
    connection aborting one millisecond later: the client never reads the
    TLS 1.3 session tickets sent by the server, so close() aborts the
    connection with a TCP RST, which on Windows discards the syslog record
    before the server reads it.
    
    Assisted-By: Claude Fable 5 <[email protected]>
    
    * Reflow comment
---
 .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..a60a31f8
--- /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 }}
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
deleted file mode 100644
index 49f910d0..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, windows-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