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 f96e04947f83e753e2d149c8c2955497008eef59 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..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 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
