diff --git a/.github/workflows/build-legacy-branch.yaml b/.github/workflows/build-legacy-branch.yaml index 65bfa4bb385..e31d3b85edf 100644 --- a/.github/workflows/build-legacy-branch.yaml +++ b/.github/workflows/build-legacy-branch.yaml @@ -17,7 +17,7 @@ jobs: contents: read steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: ref: ${{ inputs.ref }} @@ -53,7 +53,7 @@ jobs: packages: write steps: - name: Checkout the docker build repo for legacy builds - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: repository: fluent/fluent-bit-docker-image ref: "1.8" # Fixed to this branch diff --git a/.github/workflows/call-build-images.yaml b/.github/workflows/call-build-images.yaml index 2a9eb8d6356..69f4c443fd8 100644 --- a/.github/workflows/call-build-images.yaml +++ b/.github/workflows/call-build-images.yaml @@ -60,7 +60,7 @@ jobs: contents: read steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: ref: ${{ inputs.ref }} @@ -98,7 +98,7 @@ jobs: runs-on: ${{ (contains(matrix.platform, 'arm') && 'ubuntu-22.04-arm') || 'ubuntu-latest' }} steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: ref: ${{ inputs.ref }} token: ${{ secrets.token }} @@ -173,7 +173,7 @@ jobs: raw,latest - name: Download production digests - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v5 with: pattern: production-digests-* path: /tmp/production-digests @@ -225,7 +225,7 @@ jobs: raw,latest-debug - name: Download debug digests - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v5 with: pattern: debug-digests-* path: /tmp/debug-digests @@ -397,7 +397,7 @@ jobs: packages: write steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: ref: ${{ inputs.ref }} diff --git a/.github/workflows/call-build-linux-packages.yaml b/.github/workflows/call-build-linux-packages.yaml index ef9112a3ec8..97d187cd635 100644 --- a/.github/workflows/call-build-linux-packages.yaml +++ b/.github/workflows/call-build-linux-packages.yaml @@ -60,7 +60,7 @@ jobs: contents: read steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: ref: ${{ inputs.ref }} path: source @@ -87,7 +87,7 @@ jobs: # Pick up latest master version - name: Checkout code for action if: inputs.environment == 'staging' - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: path: action-support @@ -115,7 +115,7 @@ jobs: continue-on-error: ${{ inputs.ignore_failing_targets || false }} steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: ref: ${{ inputs.ref }} @@ -163,7 +163,9 @@ jobs: # For ubuntu map to codename using the disto-info list (CSV) run: | sudo apt-get update - sudo apt-get install -y distro-info awscli + sudo apt-get install -y distro-info + sudo apt-get install -y awscli || sudo snap install aws-cli --classic + TARGET=${DISTRO%*.arm64v8} if [[ "$TARGET" == "ubuntu/"* ]]; then UBUNTU_CODENAME=$(cut -d ',' -f 1,3 < "/usr/share/distro-info/ubuntu.csv"|grep "${TARGET##*/}"|cut -d ',' -f 2) @@ -194,7 +196,7 @@ jobs: # Pick up latest master version - name: Checkout code for action if: inputs.environment == 'staging' - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: path: action-support @@ -224,12 +226,14 @@ jobs: timeout-minutes: 10 run: | sudo apt-get update - sudo apt-get install -y createrepo-c aptly awscli + sudo apt-get install -y createrepo-c aptly + sudo apt-get install -y awscli || sudo snap install aws-cli --classic + shell: bash env: DEBIAN_FRONTEND: noninteractive - name: Checkout code for repo metadata construction - always latest - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Import GPG key for signing id: import_gpg diff --git a/.github/workflows/call-build-macos.yaml b/.github/workflows/call-build-macos.yaml index 48d83b1d876..76bf9cb0e40 100644 --- a/.github/workflows/call-build-macos.yaml +++ b/.github/workflows/call-build-macos.yaml @@ -47,7 +47,7 @@ jobs: contents: read steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: ref: ${{ inputs.ref }} @@ -83,7 +83,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: ref: ${{ inputs.ref }} @@ -133,13 +133,13 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: ref: ${{ inputs.ref }} - name: Download all artefacts continue-on-error: true - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v5 with: name: macos-packages on ${{ matrix.config.os }} path: artifacts/ diff --git a/.github/workflows/call-build-windows.yaml b/.github/workflows/call-build-windows.yaml index 7d876e518c2..ababf6ffcbf 100644 --- a/.github/workflows/call-build-windows.yaml +++ b/.github/workflows/call-build-windows.yaml @@ -56,7 +56,7 @@ jobs: armSupported: ${{ steps.armcheck.outputs.armSupported }} steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: ref: ${{ inputs.ref }} @@ -102,7 +102,7 @@ jobs: PATH: C:\ProgramData\Chocolatey\bin;c:/Program Files/Git/cmd;c:/Windows/system32;C:/Windows/System32/WindowsPowerShell/v1.0;$ENV:WIX/bin;C:/Program Files/CMake/bin;C:\vcpkg; steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: ref: ${{ inputs.ref }} @@ -205,13 +205,13 @@ jobs: contents: read steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: # Need latest for checksum packaging script ref: master - name: Download all artefacts - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v5 with: pattern: windows-packages-* merge-multiple: true diff --git a/.github/workflows/call-integration-image-build.yaml b/.github/workflows/call-integration-image-build.yaml index 65a47fc4d58..44bd407a6ee 100644 --- a/.github/workflows/call-integration-image-build.yaml +++ b/.github/workflows/call-integration-image-build.yaml @@ -39,7 +39,7 @@ jobs: contents: read packages: write steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: ref: ${{ inputs.ref }} @@ -105,7 +105,7 @@ jobs: packages: read steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: ref: ${{ inputs.ref }} diff --git a/.github/workflows/call-run-integration-test.yaml b/.github/workflows/call-run-integration-test.yaml index 7e54873d5ff..9c85bb8e67c 100644 --- a/.github/workflows/call-run-integration-test.yaml +++ b/.github/workflows/call-run-integration-test.yaml @@ -46,7 +46,7 @@ jobs: gke-cluster-region: ${{ steps.gke-cluster-region.outputs.stdout }} gke-cluster-zone: ${{ steps.gke-cluster-zone.outputs.stdout }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: ref: ${{ inputs.ref }} repository: fluent/fluent-bit-ci @@ -57,12 +57,12 @@ jobs: cli_config_credentials_token: ${{ secrets.terraform_api_token }} - id: 'auth' - uses: 'google-github-actions/auth@v2' + uses: 'google-github-actions/auth@v3' with: credentials_json: ${{ secrets.gcp-service-account-key }} - name: 'Set up Cloud SDK' - uses: 'google-github-actions/setup-gcloud@v2' + uses: 'google-github-actions/setup-gcloud@v3' - name: Replace terraform variables. run: | @@ -101,7 +101,7 @@ jobs: working-directory: terraform continue-on-error: true - - uses: actions/github-script@v7 + - uses: actions/github-script@v8 if: github.event_name == 'pull_request' env: PLAN: "terraform\n${{ steps.plan.outputs.stdout }}" @@ -175,7 +175,7 @@ jobs: - name: Test image exists and cache locally run: docker pull ${{ inputs.image_name }}:${{ inputs.image_tag }} - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: ref: ${{ inputs.ref }} repository: fluent/fluent-bit-ci @@ -234,18 +234,18 @@ jobs: env: USE_GKE_GCLOUD_AUTH_PLUGIN: true steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: ref: ${{ inputs.ref }} repository: fluent/fluent-bit-ci - if: matrix.cloud == 'gke' - uses: 'google-github-actions/auth@v2' + uses: 'google-github-actions/auth@v3' with: credentials_json: ${{ secrets.gcp-service-account-key }} - if: matrix.cloud == 'gke' - uses: 'google-github-actions/setup-gcloud@v2' + uses: 'google-github-actions/setup-gcloud@v3' with: install_components: 'gke-gcloud-auth-plugin' @@ -264,7 +264,7 @@ jobs: - name: Get the GKE Kubeconfig if: matrix.cloud == 'gke' - uses: 'google-github-actions/get-gke-credentials@v2' + uses: 'google-github-actions/get-gke-credentials@v3' with: cluster_name: ${{ needs.call-run-terraform-setup.outputs.gke-cluster-name }} location: ${{ needs.call-run-terraform-setup.outputs.gke-cluster-zone }} diff --git a/.github/workflows/call-test-images.yaml b/.github/workflows/call-test-images.yaml index a6cf4caa377..2c448b338db 100644 --- a/.github/workflows/call-test-images.yaml +++ b/.github/workflows/call-test-images.yaml @@ -131,7 +131,7 @@ jobs: arch: [ linux/amd64, linux/arm64, linux/arm/v7 ] steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: ref: ${{ inputs.ref }} @@ -177,7 +177,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: ref: ${{ inputs.ref }} diff --git a/.github/workflows/call-test-packages.yaml b/.github/workflows/call-test-packages.yaml index 90b8414cee7..b4e5e642f57 100644 --- a/.github/workflows/call-test-packages.yaml +++ b/.github/workflows/call-test-packages.yaml @@ -37,7 +37,7 @@ jobs: distro: [ amazonlinux2022, amazonlinux2, centos7, centos8, debian10, debian11, ubuntu1804, ubuntu2004, ubuntu2204 ] steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Get the version id: get_version diff --git a/.github/workflows/call-windows-unit-tests.yaml b/.github/workflows/call-windows-unit-tests.yaml index 2b58b345b38..aa353d55e3c 100644 --- a/.github/workflows/call-windows-unit-tests.yaml +++ b/.github/workflows/call-windows-unit-tests.yaml @@ -51,7 +51,7 @@ jobs: PATH: C:\ProgramData\Chocolatey\bin;c:/Program Files/Git/cmd;c:/Windows/system32;C:/Windows/System32/WindowsPowerShell/v1.0;$ENV:WIX/bin;C:/Program Files/CMake/bin;C:\vcpkg; steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: ref: ${{ inputs.ref }} diff --git a/.github/workflows/cron-scorecards-analysis.yaml b/.github/workflows/cron-scorecards-analysis.yaml index 0d30d25d2a5..b61bf253b24 100644 --- a/.github/workflows/cron-scorecards-analysis.yaml +++ b/.github/workflows/cron-scorecards-analysis.yaml @@ -26,7 +26,7 @@ jobs: id-token: write steps: - name: "Checkout code" - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: persist-credentials: false diff --git a/.github/workflows/cron-stale.yaml b/.github/workflows/cron-stale.yaml index 6d7e0e91e60..9ee9a64afa7 100644 --- a/.github/workflows/cron-stale.yaml +++ b/.github/workflows/cron-stale.yaml @@ -8,7 +8,7 @@ jobs: name: Mark stale runs-on: ubuntu-latest steps: - - uses: actions/stale@v9 + - uses: actions/stale@v10 with: repo-token: ${{ secrets.GITHUB_TOKEN }} stale-issue-message: 'This issue is stale because it has been open 90 days with no activity. Remove stale label or comment or this will be closed in 5 days. Maintainers can add the `exempt-stale` label.' diff --git a/.github/workflows/cron-unstable-build.yaml b/.github/workflows/cron-unstable-build.yaml index 1a8093390b2..10fdad40cb5 100644 --- a/.github/workflows/cron-unstable-build.yaml +++ b/.github/workflows/cron-unstable-build.yaml @@ -64,6 +64,12 @@ jobs: echo "cron_branch=master" >> $GITHUB_ENV shell: bash + - name: 4.0 run + if: github.event_name == 'schedule' && github.event.schedule=='0 24 * * *' + run: | + echo "cron_branch=4.0" >> $GITHUB_ENV + shell: bash + - name: Output the branch to use id: branch run: | @@ -101,7 +107,7 @@ jobs: contents: read steps: - name: Checkout repository, always latest for action - uses: actions/checkout@v4 + uses: actions/checkout@v5 # Set up the list of target to build so we can pass the JSON to the reusable job - uses: ./.github/actions/generate-package-build-matrix @@ -163,11 +169,11 @@ jobs: steps: # Required to make a release later - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Download all artefacts continue-on-error: true - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v5 with: path: artifacts/ diff --git a/.github/workflows/pr-compile-check.yaml b/.github/workflows/pr-compile-check.yaml index 5f08fddde60..e363377e6db 100644 --- a/.github/workflows/pr-compile-check.yaml +++ b/.github/workflows/pr-compile-check.yaml @@ -16,7 +16,7 @@ jobs: timeout-minutes: 30 steps: - name: Checkout Fluent Bit code - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 @@ -68,7 +68,7 @@ jobs: run: | sudo apt-get update sudo apt-get install -y libc-ares-dev libjemalloc-dev libluajit-5.1-dev \ - libnghttp2-dev libsqlite3-dev libzstd-dev libmsgpack-dev + libnghttp2-dev libsqlite3-dev libzstd-dev libmsgpack-dev librdkafka-dev mkdir -p /tmp/libbacktrace/build && \ curl -L https://github.com/ianlancetaylor/libbacktrace/archive/8602fda.tar.gz | \ tar --strip-components=1 -xzC /tmp/libbacktrace/ && \ @@ -80,7 +80,7 @@ jobs: cmake-version: "${{ matrix.cmake_version }}" - name: Checkout Fluent Bit code - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: ${{ matrix.compiler.cc }} & ${{ matrix.compiler.cxx }} - ${{ matrix.flb_option }} run: | @@ -112,10 +112,11 @@ jobs: echo "$ldd_result" | grep libzstd working-directory: build - - name: Display dependencies w/ ldd for libmsgpack + - name: Display dependencies w/ ldd for libmsgpack and librdkafka if: matrix.os.version == 'ubuntu-24.04' run: | export ldd_result=$(ldd ./bin/fluent-bit) echo "ldd result:" echo "$ldd_result" | grep libmsgpack + echo "$ldd_result" | grep librdkafka working-directory: build diff --git a/.github/workflows/pr-image-tests.yaml b/.github/workflows/pr-image-tests.yaml index a2a2494df6b..8a970c4ff97 100644 --- a/.github/workflows/pr-image-tests.yaml +++ b/.github/workflows/pr-image-tests.yaml @@ -21,7 +21,7 @@ jobs: # We do not push and this allows simpler workflow running for forks too steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 @@ -72,7 +72,7 @@ jobs: contents: read steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Build the classic test image # We only want to confirm it builds with classic mode, nothing else @@ -96,7 +96,7 @@ jobs: contents: read steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Extract metadata from Github id: meta diff --git a/.github/workflows/pr-install-script.yaml b/.github/workflows/pr-install-script.yaml index 0eeeed658df..f284ea7c0f6 100644 --- a/.github/workflows/pr-install-script.yaml +++ b/.github/workflows/pr-install-script.yaml @@ -19,7 +19,7 @@ jobs: timeout-minutes: 30 steps: - name: Checkout Fluent Bit code - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Run install tests run: | diff --git a/.github/workflows/pr-lint.yaml b/.github/workflows/pr-lint.yaml index f8af79bb9ad..28c07a6ca98 100644 --- a/.github/workflows/pr-lint.yaml +++ b/.github/workflows/pr-lint.yaml @@ -8,7 +8,7 @@ jobs: runs-on: ubuntu-latest name: PR - Hadolint steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 # Ignores do not work: https://github.com/reviewdog/action-hadolint/issues/35 is resolved - uses: reviewdog/action-hadolint@v1 with: @@ -19,7 +19,7 @@ jobs: runs-on: ubuntu-latest name: PR - Shellcheck steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - uses: ludeeus/action-shellcheck@master with: ignore_paths: cmake/sanitizers-cmake lib plugins tests @@ -28,7 +28,7 @@ jobs: runs-on: ubuntu-latest name: PR - Actionlint steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - run: | echo "::add-matcher::.github/actionlint-matcher.json" bash <(curl https://raw.githubusercontent.com/rhysd/actionlint/main/scripts/download-actionlint.bash) diff --git a/.github/workflows/pr-package-tests.yaml b/.github/workflows/pr-package-tests.yaml index 7eb53c63e99..9626c075be6 100644 --- a/.github/workflows/pr-package-tests.yaml +++ b/.github/workflows/pr-package-tests.yaml @@ -8,6 +8,7 @@ on: - synchronize branches: - master + - 4.0 # Cancel any running on push concurrency: @@ -65,7 +66,7 @@ jobs: contents: read steps: - name: Checkout repository, always latest for action - uses: actions/checkout@v4 + uses: actions/checkout@v5 # Set up the list of target to build so we can pass the JSON to the reusable job - uses: ./.github/actions/generate-package-build-matrix diff --git a/.github/workflows/pr-perf-test.yaml b/.github/workflows/pr-perf-test.yaml index de50d7f3578..1c40abe1370 100644 --- a/.github/workflows/pr-perf-test.yaml +++ b/.github/workflows/pr-perf-test.yaml @@ -32,7 +32,7 @@ jobs: permissions: pull-requests: write steps: - - uses: actions/download-artifact@v4 + - uses: actions/download-artifact@v5 - name: Upload plots to CML run: | @@ -59,7 +59,7 @@ jobs: shell: bash working-directory: output - - uses: actions/github-script@v7 + - uses: actions/github-script@v8 if: github.event_name == 'pull_request' env: REPORT: "Plots\n${{ steps.report.outputs.report }}" diff --git a/.github/workflows/staging-build.yaml b/.github/workflows/staging-build.yaml index 403f640db92..e82872045bb 100644 --- a/.github/workflows/staging-build.yaml +++ b/.github/workflows/staging-build.yaml @@ -37,18 +37,6 @@ jobs: version: ${{ steps.formatted_version.outputs.replaced }} steps: - - name: Free up disk space - run: | - echo "Before cleanup:" - df -h - docker system prune -af - sudo rm -rf /usr/share/dotnet - sudo rm -rf /usr/local/lib/android - sudo rm -rf /opt/ghc - echo "After cleanup:" - df -h - shell: bash - - run: | echo "Version: ${{ inputs.version || github.ref_name }}" shell: bash @@ -106,7 +94,7 @@ jobs: - name: Download the schema generated by call-build-images # We may have no schema so ignore that failure continue-on-error: true - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v5 with: name: fluent-bit-schema-${{ needs.staging-build-get-meta.outputs.version }} path: artifacts/ @@ -135,7 +123,7 @@ jobs: build-matrix: ${{ steps.set-matrix.outputs.build-matrix }} steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v5 # Set up the list of target to build so we can pass the JSON to the reusable job - uses: ./.github/actions/generate-package-build-matrix id: set-matrix diff --git a/.github/workflows/staging-release.yaml b/.github/workflows/staging-release.yaml index 2cdc0ba39c2..2521150710c 100644 --- a/.github/workflows/staging-release.yaml +++ b/.github/workflows/staging-release.yaml @@ -65,7 +65,7 @@ jobs: RELEASE_VERSION: ${{ github.event.inputs.version }} - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v5 staging-release-generate-package-matrix: name: Get package matrix @@ -75,7 +75,7 @@ jobs: rpm-build-matrix: ${{ steps.get-matrix.outputs.rpm-build-matrix }} steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Setup runner run: | @@ -111,7 +111,7 @@ jobs: fail-fast: false steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Setup runner run: | @@ -184,7 +184,7 @@ jobs: fail-fast: false steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Setup runner run: | @@ -335,7 +335,7 @@ jobs: contents: read steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Sync packages from buckets on S3 run: | @@ -729,7 +729,7 @@ jobs: - staging-release-yum-packages steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Test release packages run: | @@ -751,7 +751,7 @@ jobs: - staging-release-images steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Test containers run: | @@ -904,7 +904,7 @@ jobs: steps: - name: Release 2.0 - not latest if: startsWith(inputs.version, '2.0') - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: repository: fluent/fluent-bit-docs ref: 2.0 @@ -912,7 +912,7 @@ jobs: - name: Release 2.1 - not latest if: startsWith(inputs.version, '2.1') - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: repository: fluent/fluent-bit-docs ref: 2.1 @@ -920,7 +920,7 @@ jobs: - name: Release 2.2 - not latest if: startsWith(inputs.version, '2.2') - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: repository: fluent/fluent-bit-docs ref: 2.2 @@ -928,7 +928,7 @@ jobs: - name: Release 3.0 - not latest if: startsWith(inputs.version, '3.0') - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: repository: fluent/fluent-bit-docs ref: 3.0 @@ -936,7 +936,7 @@ jobs: - name: Release 3.1 - not latest if: startsWith(inputs.version, '3.1') - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: repository: fluent/fluent-bit-docs ref: 3.1 @@ -944,7 +944,7 @@ jobs: - name: Release 3.2 - not latest if: startsWith(inputs.version, '3.2') - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: repository: fluent/fluent-bit-docs token: ${{ secrets.GH_PA_TOKEN }} @@ -952,7 +952,7 @@ jobs: - name: Release 4.0 and latest if: startsWith(inputs.version, '4.0') - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: repository: fluent/fluent-bit-docs token: ${{ secrets.GH_PA_TOKEN }} @@ -1014,43 +1014,49 @@ jobs: steps: - name: Release 2.0 if: startsWith(inputs.version, '2.0') - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: ref: 2.0 - name: Release 2.1 if: startsWith(inputs.version, '2.1') - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: ref: 2.1 - name: Release 2.2 if: startsWith(inputs.version, '2.2') - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: ref: 2.2 - name: Release 3.0 if: startsWith(inputs.version, '3.0') - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: ref: 3.0 - name: Release 3.1 if: startsWith(inputs.version, '3.1') - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: ref: 3.1 - name: Release 3.2 if: startsWith(inputs.version, '3.2') - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: ref: 3.2 - name: Release 4.0 if: startsWith(inputs.version, '4.0') - uses: actions/checkout@v4 + uses: actions/checkout@v5 + with: + ref: 4.0 + + - name: Release 4.1 + if: startsWith(inputs.version, '4.1') + uses: actions/checkout@v5 with: ref: master diff --git a/.github/workflows/unit-tests.yaml b/.github/workflows/unit-tests.yaml index 2fc7ee8844e..16782abdec2 100644 --- a/.github/workflows/unit-tests.yaml +++ b/.github/workflows/unit-tests.yaml @@ -22,6 +22,7 @@ on: - 'examples/**' branches: - master + - 4.0 - 3.2 - 3.1 - 3.0 @@ -51,6 +52,7 @@ jobs: - "-DFLB_SANITIZE_THREAD=On" - "-DFLB_SIMD=On" - "-DFLB_SIMD=Off" + - "-DFLB_ARROW=On" cmake_version: - "3.31.6" compiler: @@ -65,6 +67,10 @@ jobs: compiler: cc: clang cxx: clang++ + - flb_option: "-DFLB_ARROW=On" + compiler: + cc: clang + cxx: clang++ permissions: contents: read steps: @@ -79,12 +85,21 @@ jobs: with: cmake-version: "${{ matrix.cmake_version }}" - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: repository: calyptia/fluent-bit-ci path: ci + - name: Setup Apache Arrow libraries for parquet (-DFLB_ARROW=On Only) + if: matrix.flb_option == '-DFLB_ARROW=On' + run: | + sudo apt-get update + sudo apt-get install -y -V ca-certificates lsb-release wget + wget https://packages.apache.org/artifactory/arrow/$(lsb_release --id --short | tr 'A-Z' 'a-z')/apache-arrow-apt-source-latest-$(lsb_release --codename --short).deb + sudo apt-get install -y -V ./apache-arrow-apt-source-latest-$(lsb_release --codename --short).deb + sudo apt-get update + sudo apt-get install -y -V libarrow-glib-dev libparquet-glib-dev - name: ${{ matrix.compiler.cc }} & ${{ matrix.compiler.cxx }} - ${{ matrix.flb_option }} run: | @@ -123,8 +138,8 @@ jobs: with: cmake-version: "${{ matrix.cmake_version }}" - - uses: actions/checkout@v4 - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 + - uses: actions/checkout@v5 with: repository: calyptia/fluent-bit-ci path: ci @@ -163,7 +178,7 @@ jobs: steps: - name: Checkout Fluent Bit code - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Setup environment run: | @@ -225,7 +240,7 @@ jobs: - riscv64 steps: - name: Checkout Fluent Bit code - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Prepare and build with QEMU ${{ matrix.arch }} uses: uraimo/run-on-arch-action@v3 diff --git a/.github/workflows/update-dockerhub.yaml b/.github/workflows/update-dockerhub.yaml index a7b01b13e5a..0fef18311e4 100644 --- a/.github/workflows/update-dockerhub.yaml +++ b/.github/workflows/update-dockerhub.yaml @@ -11,7 +11,7 @@ jobs: contents: read runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Docker Hub Description uses: peter-evans/dockerhub-description@v4 diff --git a/packaging/README.md b/packaging/README.md index 440e2c1047f..4066f30b15f 100644 --- a/packaging/README.md +++ b/packaging/README.md @@ -11,16 +11,26 @@ The [`distros`](./distros/) directory contains OCI container definitions used to | Distro | Version / Code Name | Arch | Target Option | |---------------|---------------------------|---------|--------------------------| -| AmazonLinux | 2 | x86_64 | amazonlinux/2 | -| AmazonLinux | 2 | arm64v8 | amazonlinux/2.arm64v8 | +| AlmaLinux | 10 | x86_64 | almalinux/10 | +| AlmaLinux | 10 | arm64v8 | almalinux/10.arm64v8 | +| AlmaLinux | 9 | x86_64 | almalinux/9 | +| AlmaLinux | 9 | arm64v8 | almalinux/9.arm64v8 | +| AlmaLinux | 8 | x86_64 | almalinux/8 | +| AlmaLinux | 8 | arm64v8 | almalinux/8.arm64v8 | | AmazonLinux | 2023 | x86_64 | amazonlinux/2023 | | AmazonLinux | 2023 | arm64v8 | amazonlinux/2023.arm64v8 | +| AmazonLinux | 2 | x86_64 | amazonlinux/2 | +| AmazonLinux | 2 | arm64v8 | amazonlinux/2.arm64v8 | +| CentOS Stream | 10 | x86_64 | centos/10 | +| CentOS Stream | 10 | arm64v8 | centos/10.arm64v8 | | CentOS Stream | 9 | x86_64 | centos/9 | | CentOS Stream | 9 | arm64v8 | centos/9.arm64v8 | | CentOS | 8 | x86_64 | centos/8 | | CentOS | 8 | arm64v8 | centos/8.arm64v8 | | CentOS | 7 | x86_64 | centos/7 | | CentOS | 7 | arm64v8 | centos/7.arm64v8 | +| Debian | 13 | x86_64 | debian/trixie | +| Debian | 13 | arm64v8 | debian/trixie.arm64v8 | | Debian | 12 | x86_64 | debian/bookworm | | Debian | 12 | arm64v8 | debian/bookworm.arm64v8 | | Debian | 11 | x86_64 | debian/bullseye | @@ -39,6 +49,12 @@ The [`distros`](./distros/) directory contains OCI container definitions used to | Raspbian | 12 / Bookworm | arm32v7 | raspbian/bookworm | | Raspbian | 11 / Bullseye | arm32v7 | raspbian/bullseye | | Raspbian | 10 / Buster | arm32v7 | raspbian/buster | +| Rocky Linux | 10 | x86_64 | rockylinux/10 | +| Rocky Linux | 10 | arm64v8 | rockylinux/10.arm64v8 | +| Rocky Linux | 9 | x86_64 | rockylinux/9 | +| Rocky Linux | 9 | arm64v8 | rockylinux/9.arm64v8 | +| Rocky Linux | 8 | x86_64 | rockylinux/8 | +| Rocky Linux | 8 | arm64v8 | rockylinux/8.arm64v8 | These container images are intended to be built from the root of this repo to build the locally checked out/updated version of the source easily for any target. diff --git a/packaging/build-config.json b/packaging/build-config.json index f6e5a2744cf..4ca4f44df99 100644 --- a/packaging/build-config.json +++ b/packaging/build-config.json @@ -40,6 +40,14 @@ "target": "centos/9.arm64v8", "type": "rpm" }, + { + "target": "centos/10", + "type": "rpm" + }, + { + "target": "centos/10.arm64v8", + "type": "rpm" + }, { "target": "rockylinux/8", "type": "rpm" @@ -56,6 +64,14 @@ "target": "rockylinux/9.arm64v8", "type": "rpm" }, + { + "target": "rockylinux/10", + "type": "rpm" + }, + { + "target": "rockylinux/10.arm64v8", + "type": "rpm" + }, { "target": "almalinux/8", "type": "rpm" @@ -72,6 +88,14 @@ "target": "almalinux/9.arm64v8", "type": "rpm" }, + { + "target": "almalinux/10", + "type": "rpm" + }, + { + "target": "almalinux/10.arm64v8", + "type": "rpm" + }, { "target": "debian/bookworm", "type": "deb" @@ -96,6 +120,14 @@ "target": "debian/bullseye.arm64v8", "type": "deb" }, + { + "target": "debian/trixie", + "type": "deb" + }, + { + "target": "debian/trixie.arm64v8", + "type": "deb" + }, { "target": "ubuntu/22.04", "type": "deb" diff --git a/packaging/distros/almalinux/Dockerfile b/packaging/distros/almalinux/Dockerfile index 5d5b93fd5c6..a17dbd43bf3 100644 --- a/packaging/distros/almalinux/Dockerfile +++ b/packaging/distros/almalinux/Dockerfile @@ -7,10 +7,10 @@ ARG BASE_BUILDER # Use buildkit to skip unused base images: DOCKER_BUILDKIT=1 # Multiarch support -FROM multiarch/qemu-user-static:x86_64-aarch64 as multiarch-aarch64 +FROM multiarch/qemu-user-static:x86_64-aarch64 AS multiarch-aarch64 # almalinux/8 base image -FROM almalinux:8 as almalinux-8-base +FROM almalinux:8 AS almalinux-8-base # Add for the YAML development libraries RUN sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/almalinux-powertools.repo @@ -25,7 +25,7 @@ RUN yum -y update && \ # almalinux/8.arm64v8 base image # hadolint ignore=DL3029 -FROM --platform=arm64 almalinux:8 as almalinux-8.arm64v8-base +FROM --platform=arm64 almalinux:8 AS almalinux-8.arm64v8-base COPY --from=multiarch-aarch64 /usr/bin/qemu-aarch64-static /usr/bin/qemu-aarch64-static @@ -44,7 +44,7 @@ RUN yum -y update && \ ARG FLB_JEMALLOC_OPTIONS="--with-lg-page=16 --with-lg-quantum=3" ENV FLB_JEMALLOC_OPTIONS=$FLB_JEMALLOC_OPTIONS -FROM almalinux:9 as almalinux-9-base +FROM almalinux:9 AS almalinux-9-base # Add for the YAML development libraries RUN sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/almalinux-crb.repo @@ -59,7 +59,41 @@ RUN yum -y update && \ # almalinux/8.arm64v8 base image # hadolint ignore=DL3029 -FROM --platform=arm64 almalinux:9 as almalinux-9.arm64v8-base +FROM --platform=arm64 almalinux:9 AS almalinux-9.arm64v8-base + +COPY --from=multiarch-aarch64 /usr/bin/qemu-aarch64-static /usr/bin/qemu-aarch64-static + +# Add for the YAML development libraries +RUN sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/almalinux-crb.repo + +# hadolint ignore=DL3033 +RUN yum -y update && \ + yum install -y --allowerasing rpm-build curl ca-certificates gcc gcc-c++ cmake make bash \ + wget unzip systemd-devel wget flex bison \ + postgresql-libs postgresql-devel postgresql-server postgresql \ + cyrus-sasl-lib openssl openssl-libs openssl-devel libyaml-devel pkgconf-pkg-config && \ + yum clean all + +# Need larger page size +ARG FLB_JEMALLOC_OPTIONS="--with-lg-page=16 --with-lg-quantum=3" +ENV FLB_JEMALLOC_OPTIONS=$FLB_JEMALLOC_OPTIONS + +FROM almalinux:10 AS almalinux-10-base + +# Add for the YAML development libraries +RUN sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/almalinux-crb.repo + +# hadolint ignore=DL3033 +RUN yum -y update && \ + yum install -y --allowerasing rpm-build curl ca-certificates gcc gcc-c++ cmake make bash \ + wget unzip systemd-devel wget flex bison \ + postgresql-libs postgresql-devel postgresql-server postgresql \ + cyrus-sasl-lib openssl openssl-libs openssl-devel libyaml-devel pkgconf-pkg-config && \ + yum clean all + +# almalinux/8.arm64v8 base image +# hadolint ignore=DL3029 +FROM --platform=arm64 almalinux:10 AS almalinux-10.arm64v8-base COPY --from=multiarch-aarch64 /usr/bin/qemu-aarch64-static /usr/bin/qemu-aarch64-static @@ -80,7 +114,7 @@ ENV FLB_JEMALLOC_OPTIONS=$FLB_JEMALLOC_OPTIONS # Common build for all distributions now # hadolint ignore=DL3006 -FROM $BASE_BUILDER as builder +FROM $BASE_BUILDER AS builder ARG FLB_NIGHTLY_BUILD ENV FLB_NIGHTLY_BUILD=$FLB_NIGHTLY_BUILD diff --git a/packaging/distros/centos/Dockerfile b/packaging/distros/centos/Dockerfile index b581d5aa1f5..fc427764455 100644 --- a/packaging/distros/centos/Dockerfile +++ b/packaging/distros/centos/Dockerfile @@ -225,6 +225,69 @@ ENV FLB_KAFKA=$FLB_KAFKA ARG FLB_JEMALLOC_OPTIONS="--with-lg-page=16 --with-lg-quantum=3" ENV FLB_JEMALLOC_OPTIONS=$FLB_JEMALLOC_OPTIONS +FROM quay.io/centos/centos:stream10 AS centos-10-base + +ENV CMAKE_HOME="/opt/cmake" +ARG CMAKE_VERSION="3.31.6" +ARG CMAKE_URL="https://github.com/Kitware/CMake/releases/download" + +# Add for the YAML development libraries +# hadolint ignore=DL3033,DL3041 +RUN dnf -y install 'dnf-command(config-manager)' && dnf -y config-manager --set-enabled crb && \ + dnf -y install rpm-build ca-certificates gcc gcc-c++ make bash \ + wget unzip systemd-devel wget flex bison \ + postgresql-libs postgresql-devel postgresql-server postgresql \ + cyrus-sasl-lib cyrus-sasl-devel openssl openssl-libs openssl-devel libcurl-devel pkgconf-pkg-config \ + libyaml-devel zlib-devel \ + tar gzip && \ + dnf clean all && \ + mkdir -p "${CMAKE_HOME}" && \ + cmake_download_url="${CMAKE_URL}/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-$(uname -m).tar.gz" && \ + echo "Downloading CMake ${CMAKE_VERSION}: ${cmake_download_url} -> ${CMAKE_HOME}" && \ + curl -jksSL "${cmake_download_url}" | tar -xzf - -C "${CMAKE_HOME}" --strip-components 1 + +ENV PATH="${CMAKE_HOME}/bin:${PATH}" + +ARG FLB_OUT_PGSQL=On +ENV FLB_OUT_PGSQL=$FLB_OUT_PGSQL + +# hadolint ignore=DL3029 +FROM --platform=arm64 quay.io/centos/centos:stream10 AS centos-10.arm64v8-base + +COPY --from=multiarch-aarch64 /usr/bin/qemu-aarch64-static /usr/bin/qemu-aarch64-static + +ENV CMAKE_HOME="/opt/cmake" +ARG CMAKE_VERSION="3.31.6" +ARG CMAKE_URL="https://github.com/Kitware/CMake/releases/download" + +# Add for the YAML development libraries +# hadolint ignore=DL3033,DL3041 +RUN dnf -y install 'dnf-command(config-manager)' && dnf -y config-manager --set-enabled crb && \ + dnf -y install rpm-build ca-certificates gcc gcc-c++ make bash \ + wget unzip systemd-devel wget flex bison \ + postgresql-libs postgresql-devel postgresql-server postgresql \ + cyrus-sasl-lib cyrus-sasl-devel openssl openssl-libs openssl-devel libcurl-devel pkgconf-pkg-config \ + libyaml-devel zlib-devel \ + tar gzip && \ + dnf clean all && \ + mkdir -p "${CMAKE_HOME}" && \ + cmake_download_url="${CMAKE_URL}/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-$(uname -m).tar.gz" && \ + echo "Downloading CMake ${CMAKE_VERSION}: ${cmake_download_url} -> ${CMAKE_HOME}" && \ + curl -jksSL "${cmake_download_url}" | tar -xzf - -C "${CMAKE_HOME}" --strip-components 1 + +ENV PATH="${CMAKE_HOME}/bin:${PATH}" + +ARG FLB_OUT_PGSQL=On +ENV FLB_OUT_PGSQL=$FLB_OUT_PGSQL +ARG FLB_UNICODE_ENCODER=On +ENV FLB_UNICODE_ENCODER=$FLB_UNICODE_ENCODER +ARG FLB_KAFKA=On +ENV FLB_KAFKA=$FLB_KAFKA + +# Need larger page size +ARG FLB_JEMALLOC_OPTIONS="--with-lg-page=16 --with-lg-quantum=3" +ENV FLB_JEMALLOC_OPTIONS=$FLB_JEMALLOC_OPTIONS + # Common build for all distributions now # hadolint ignore=DL3006 FROM $BASE_BUILDER AS builder diff --git a/packaging/distros/debian/Dockerfile b/packaging/distros/debian/Dockerfile index ffbee37bed3..82edf687423 100644 --- a/packaging/distros/debian/Dockerfile +++ b/packaging/distros/debian/Dockerfile @@ -169,6 +169,56 @@ RUN apt-get -qq update && \ ENV PATH="${CMAKE_HOME}/bin:${PATH}" +# debian/trixie base image +FROM debian:trixie-slim AS debian-trixie-base +ENV DEBIAN_FRONTEND="noninteractive" \ + CMAKE_HOME="/opt/cmake" + +ARG CMAKE_VERSION="3.31.6" +ARG CMAKE_URL="https://github.com/Kitware/CMake/releases/download" + +# hadolint ignore=DL3008,DL3015 +RUN apt-get -qq update && \ + apt-get install -y curl ca-certificates build-essential \ + make bash sudo wget unzip dh-make \ + libsystemd-dev zlib1g-dev flex bison \ + libssl3 libssl-dev libpq-dev postgresql-server-dev-all \ + libsasl2-2 libsasl2-dev libyaml-dev libcurl4-openssl-dev pkg-config \ + tar gzip && \ + apt-get install -y --reinstall lsb-base lsb-release && \ + mkdir -p "${CMAKE_HOME}" && \ + cmake_download_url="${CMAKE_URL}/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-$(uname -m).tar.gz" && \ + echo "Downloading CMake ${CMAKE_VERSION}: ${cmake_download_url} -> ${CMAKE_HOME}" && \ + curl -jksSL "${cmake_download_url}" | tar -xzf - -C "${CMAKE_HOME}" --strip-components 1 + +ENV PATH="${CMAKE_HOME}/bin:${PATH}" + +# debian/trixie.arm64v8 base image +FROM arm64v8/debian:trixie-slim AS debian-trixie.arm64v8-base +ENV DEBIAN_FRONTEND="noninteractive" \ + CMAKE_HOME="/opt/cmake" + +COPY --from=multiarch-aarch64 /usr/bin/qemu-aarch64-static /usr/bin/qemu-aarch64-static + +ARG CMAKE_VERSION="3.31.6" +ARG CMAKE_URL="https://github.com/Kitware/CMake/releases/download" + +# hadolint ignore=DL3008,DL3015 +RUN apt-get -qq update && \ + apt-get install -y curl ca-certificates build-essential \ + make bash sudo wget unzip dh-make \ + libsystemd-dev zlib1g-dev flex bison \ + libssl3 libssl-dev libpq-dev postgresql-server-dev-all \ + libsasl2-2 libsasl2-dev libyaml-dev libcurl4-openssl-dev pkg-config \ + tar gzip && \ + apt-get install -y --reinstall lsb-base lsb-release && \ + mkdir -p "${CMAKE_HOME}" && \ + cmake_download_url="${CMAKE_URL}/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-$(uname -m).tar.gz" && \ + echo "Downloading CMake ${CMAKE_VERSION}: ${cmake_download_url} -> ${CMAKE_HOME}" && \ + curl -jksSL "${cmake_download_url}" | tar -xzf - -C "${CMAKE_HOME}" --strip-components 1 + +ENV PATH="${CMAKE_HOME}/bin:${PATH}" + # Common build for all distributions now # hadolint ignore=DL3006 FROM $BASE_BUILDER AS builder diff --git a/packaging/distros/rockylinux/Dockerfile b/packaging/distros/rockylinux/Dockerfile index b9e2c242120..9b4f5100989 100644 --- a/packaging/distros/rockylinux/Dockerfile +++ b/packaging/distros/rockylinux/Dockerfile @@ -7,10 +7,10 @@ ARG BASE_BUILDER # Use buildkit to skip unused base images: DOCKER_BUILDKIT=1 # Multiarch support -FROM multiarch/qemu-user-static:x86_64-aarch64 as multiarch-aarch64 +FROM multiarch/qemu-user-static:x86_64-aarch64 AS multiarch-aarch64 # rockylinux/8 base image -FROM rockylinux:8 as rockylinux-8-base +FROM rockylinux/rockylinux:8 AS rockylinux-8-base # Add for the YAML development libraries RUN sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/Rocky-PowerTools.repo @@ -25,7 +25,7 @@ RUN yum -y update && \ # rockylinux/8.arm64v8 base image # hadolint ignore=DL3029 -FROM --platform=arm64 rockylinux:8 as rockylinux-8.arm64v8-base +FROM --platform=arm64 rockylinux/rockylinux:8 AS rockylinux-8.arm64v8-base COPY --from=multiarch-aarch64 /usr/bin/qemu-aarch64-static /usr/bin/qemu-aarch64-static @@ -44,7 +44,7 @@ RUN yum -y update && \ ARG FLB_JEMALLOC_OPTIONS="--with-lg-page=16 --with-lg-quantum=3" ENV FLB_JEMALLOC_OPTIONS=$FLB_JEMALLOC_OPTIONS -FROM rockylinux:9 as rockylinux-9-base +FROM rockylinux/rockylinux:9 AS rockylinux-9-base # Add for the YAML development libraries RUN sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/rocky-devel.repo @@ -57,9 +57,43 @@ RUN yum -y update && \ cyrus-sasl-lib openssl openssl-libs openssl-devel libyaml-devel pkgconf-pkg-config && \ yum clean all -# rockylinux/8.arm64v8 base image +# rockylinux/9.arm64v8 base image +# hadolint ignore=DL3029 +FROM --platform=arm64 rockylinux/rockylinux:9 AS rockylinux-9.arm64v8-base + +COPY --from=multiarch-aarch64 /usr/bin/qemu-aarch64-static /usr/bin/qemu-aarch64-static + +# Add for the YAML development libraries +RUN sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/rocky-devel.repo + +# hadolint ignore=DL3033 +RUN yum -y update && \ + yum install -y --allowerasing rpm-build curl ca-certificates gcc gcc-c++ cmake make bash \ + wget unzip systemd-devel wget flex bison \ + postgresql-libs postgresql-devel postgresql-server postgresql \ + cyrus-sasl-lib openssl openssl-libs openssl-devel libyaml-devel pkgconf-pkg-config && \ + yum clean all + +# Need larger page size +ARG FLB_JEMALLOC_OPTIONS="--with-lg-page=16 --with-lg-quantum=3" +ENV FLB_JEMALLOC_OPTIONS=$FLB_JEMALLOC_OPTIONS + +FROM rockylinux/rockylinux:10 AS rockylinux-10-base + +# Add for the YAML development libraries +RUN sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/rocky-devel.repo + +# hadolint ignore=DL3033 +RUN yum -y update && \ + yum install -y --allowerasing rpm-build curl ca-certificates gcc gcc-c++ cmake make bash \ + wget unzip systemd-devel wget flex bison \ + postgresql-libs postgresql-devel postgresql-server postgresql \ + cyrus-sasl-lib openssl openssl-libs openssl-devel libyaml-devel pkgconf-pkg-config && \ + yum clean all + +# rockylinux/10.arm64v8 base image # hadolint ignore=DL3029 -FROM --platform=arm64 rockylinux:9 as rockylinux-9.arm64v8-base +FROM --platform=arm64 rockylinux/rockylinux:10 AS rockylinux-10.arm64v8-base COPY --from=multiarch-aarch64 /usr/bin/qemu-aarch64-static /usr/bin/qemu-aarch64-static @@ -80,7 +114,7 @@ ENV FLB_JEMALLOC_OPTIONS=$FLB_JEMALLOC_OPTIONS # Common build for all distributions now # hadolint ignore=DL3006 -FROM $BASE_BUILDER as builder +FROM $BASE_BUILDER AS builder ARG FLB_NIGHTLY_BUILD ENV FLB_NIGHTLY_BUILD=$FLB_NIGHTLY_BUILD diff --git a/packaging/test-release-packages.sh b/packaging/test-release-packages.sh index 310364738c4..37719d7a2c6 100755 --- a/packaging/test-release-packages.sh +++ b/packaging/test-release-packages.sh @@ -37,18 +37,28 @@ function check_version() { fi } -APT_TARGETS=("ubuntu:22.04" +APT_TARGETS=( + "ubuntu:22.04" + "ubuntu:24.04" "debian:10" - "debian:11") + "debian:11" + "debian:12" + "debian:13" +) -YUM_TARGETS=("centos:7" +YUM_TARGETS=( + "centos:7" "almalinux:8" "almalinux:9" + "almalinux:10" "rockylinux:8" "rockylinux:9" + "rockylinux:10" "quay.io/centos/centos:stream9" + "quay.io/centos/centos:stream10" "amazonlinux:2" - "amazonlinux:2023") + "amazonlinux:2023" +) for IMAGE in "${YUM_TARGETS[@]}" do diff --git a/packaging/testing/smoke/packages/Dockerfile.debian13 b/packaging/testing/smoke/packages/Dockerfile.debian13 new file mode 100644 index 00000000000..c0fd645c94f --- /dev/null +++ b/packaging/testing/smoke/packages/Dockerfile.debian13 @@ -0,0 +1,47 @@ +# For staging upgrade we use the 'official-install' as the base +ARG STAGING_BASE=docker.io/dokken/debian-13 + +ARG RELEASE_URL=https://packages.fluentbit.io +ARG RELEASE_KEY=https://packages.fluentbit.io/fluentbit.key + +# hadolint ignore=DL3006 +FROM docker.io/dokken/debian-13 as official-install + +ARG RELEASE_URL +ENV FLUENT_BIT_PACKAGES_URL=${RELEASE_URL} + +ARG RELEASE_KEY +ENV FLUENT_BIT_PACKAGES_KEY=${RELEASE_KEY} + +SHELL ["/bin/bash", "-o", "pipefail", "-c"] +RUN curl https://raw.githubusercontent.com/fluent/fluent-bit/master/install.sh | sh +RUN systemctl enable fluent-bit + +COPY ./test.sh /test.sh +RUN chmod a+x /test.sh + +FROM official-install as staging-upgrade-prep +RUN rm -f /etc/apt/sources.list.d/fluent-bit.list + +# hadolint ignore=DL3006 +FROM ${STAGING_BASE} as staging-install +ARG STAGING_VERSION +ENV STAGING_VERSION=${STAGING_VERSION} + +ARG STAGING_URL +ENV FLUENT_BIT_PACKAGES_URL=${STAGING_URL} + +ARG STAGING_KEY=${STAGING_URL}/fluentbit.key +ENV FLUENT_BIT_PACKAGES_KEY=${STAGING_KEY} + +SHELL ["/bin/bash", "-o", "pipefail", "-c"] +RUN wget -qO - $FLUENT_BIT_PACKAGES_KEY | apt-key add - +RUN echo "deb $FLUENT_BIT_PACKAGES_URL/debian/trixie trixie main" >> /etc/apt/sources.list +# hadolint ignore=DL3015,DL3008,DL3009 +RUN apt-get update && apt-get install -y fluent-bit +RUN systemctl enable fluent-bit + +COPY ./test.sh /test.sh +RUN chmod a+x /test.sh + +FROM staging-install as staging-upgrade diff --git a/packaging/update-apt-repo.sh b/packaging/update-apt-repo.sh index 54f9851dff6..a975217d68e 100755 --- a/packaging/update-apt-repo.sh +++ b/packaging/update-apt-repo.sh @@ -10,7 +10,7 @@ if [[ ! -d "$BASE_PATH" ]]; then exit 1 fi -# "debian/bookworm" "debian/bullseye" "debian/buster" "ubuntu/xenial" "ubuntu/bionic" "ubuntu/focal" "ubuntu/jammy" "raspbian/buster" "raspbian/bullseye" +# "debian/bookworm" "debian/bullseye" "debian/buster" "debian/trixie" "ubuntu/xenial" "ubuntu/bionic" "ubuntu/focal" "ubuntu/jammy" "raspbian/buster" "raspbian/bullseye" DEB_REPO=${DEB_REPO:?} # Set true to prevent signing diff --git a/packaging/update-repos.sh b/packaging/update-repos.sh index f79542a2099..aff62af7d64 100755 --- a/packaging/update-repos.sh +++ b/packaging/update-repos.sh @@ -31,7 +31,19 @@ fi # AWS_S3_BUCKET_STAGING=fluentbit-staging export AWS_REGION=${AWS_REGION:-us-east-1} -RPM_REPO_PATHS=("amazonlinux/2" "amazonlinux/2023" "centos/7" "centos/8" "centos/9" "rockylinux/8" "rockylinux/9" "almalinux/8" "almalinux/9" ) +RPM_REPO_PATHS=( "amazonlinux/2" + "amazonlinux/2023" + "centos/7" + "centos/8" + "centos/9" + "centos/10" + "rockylinux/8" + "rockylinux/9" + "rockylinux/10" + "almalinux/8" + "almalinux/9" + "almalinux/10" + ) if [[ "${AWS_SYNC:-false}" != "false" ]]; then aws s3 sync s3://"${AWS_S3_BUCKET_RELEASE:?}" "${BASE_PATH:?}" @@ -50,6 +62,7 @@ done DEB_REPO_PATHS=( "debian/bookworm" "debian/bullseye" "debian/buster" + "debian/trixie" "ubuntu/jammy" "ubuntu/noble" "raspbian/bookworm"