Fix bundled fluentd version #3530
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Yum based Linux | |
| on: | |
| push: | |
| branches: | |
| - master | |
| - fluent-package-v5 | |
| pull_request: | |
| concurrency: | |
| group: ${{ github.head_ref || github.sha }}-${{ github.workflow }} | |
| cancel-in-progress: true | |
| jobs: | |
| define-matrix: | |
| runs-on: ubuntu-latest | |
| outputs: | |
| matrix: ${{ steps.set-matrix.outputs.matrix }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - id: set-matrix | |
| # See https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/evaluate-expressions-in-workflows-and-actions#example-returning-a-json-object | |
| run: echo "matrix=$(cat yum.matrix.json | jq --compact-output)" >> $GITHUB_OUTPUT | |
| working-directory: .github/workflows/ | |
| build: | |
| needs: define-matrix | |
| name: Build | |
| timeout-minutes: 60 | |
| strategy: | |
| fail-fast: false | |
| matrix: ${{ fromJSON(needs.define-matrix.outputs.matrix) }} | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: cache rpm | |
| uses: actions/cache@v4 | |
| id: cache-rpm | |
| with: | |
| path: | | |
| fluent-package/yum/repositories | |
| key: ${{ runner.os }}-cache-${{ matrix.rake-job }}-${{ hashFiles('**/config.rb', '**/Rakefile', '**/Gemfile*', '**/*.spec.in', 'fluent-package/templates/**', 'fluent-package/yum/**/Dockerfile') }} | |
| - name: Install dependencies | |
| if: ${{ ! steps.cache-rpm.outputs.cache-hit }} | |
| run: | | |
| sudo apt update | |
| sudo apt -V install ruby ruby-bundler ruby-serverspec | |
| sudo gem install bundler:2.2.9 --no-document | |
| sudo gem uninstall fileutils | |
| - name: Build rpm with Docker | |
| if: ${{ ! steps.cache-rpm.outputs.cache-hit }} | |
| run: | | |
| rake yum:build YUM_TARGETS=${{ matrix.rake-job }} | |
| - name: Upload fluent-package rpm | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: packages-${{ matrix.rake-job }} | |
| path: fluent-package/yum/repositories | |
| check_package_size: | |
| name: Check Package Size | |
| runs-on: ubuntu-latest | |
| needs: [define-matrix, build] | |
| strategy: | |
| fail-fast: false | |
| matrix: ${{ fromJSON(needs.define-matrix.outputs.matrix) }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| name: packages-${{ matrix.rake-job }} | |
| path: fluent-package/yum/repositories | |
| - name: Check Package Size | |
| run: | | |
| fluent-package/yum/pkgsize-test.sh ${{ matrix.rake-job }} x86_64 | |
| installation_test: | |
| name: Installation Test | |
| runs-on: ubuntu-latest | |
| needs: [define-matrix, build] | |
| strategy: | |
| fail-fast: false | |
| matrix: ${{ fromJSON(needs.define-matrix.outputs.matrix) }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| name: packages-${{ matrix.rake-job }} | |
| path: fluent-package/yum/repositories | |
| - name: Installation Test | |
| run: | | |
| mkdir -p .bundle | |
| docker run \ | |
| --rm \ | |
| --tty \ | |
| --volume ${PWD}:/fluentd:ro \ | |
| --env CENTOS_STREAM=${{ matrix.centos-stream }} \ | |
| ${{ matrix.test-docker-image }} \ | |
| /fluentd/fluent-package/yum/install-test.sh | |
| serverspec_test: | |
| name: Serverspec Test | |
| runs-on: ubuntu-latest | |
| needs: [define-matrix, build] | |
| strategy: | |
| fail-fast: false | |
| matrix: ${{ fromJSON(needs.define-matrix.outputs.matrix) }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| name: packages-${{ matrix.rake-job }} | |
| path: fluent-package/yum/repositories | |
| - name: Serverspec Test | |
| run: | | |
| mkdir -p .bundle | |
| docker run \ | |
| --rm \ | |
| --tty \ | |
| --volume ${PWD}:/fluentd:ro \ | |
| --env CENTOS_STREAM=${{ matrix.centos-stream }} \ | |
| ${{ matrix.test-docker-image }} \ | |
| /fluentd/fluent-package/yum/serverspec-test.sh | |
| binstubs_test: | |
| name: Binstubs Test | |
| runs-on: ubuntu-latest | |
| needs: [define-matrix, build] | |
| strategy: | |
| fail-fast: false | |
| matrix: ${{ fromJSON(needs.define-matrix.outputs.matrix) }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| name: packages-${{ matrix.rake-job }} | |
| path: fluent-package/yum/repositories | |
| - name: Binstubs Test | |
| run: | | |
| mkdir -p .bundle | |
| docker run \ | |
| --rm \ | |
| --tty \ | |
| --volume ${PWD}:/fluentd:ro \ | |
| --env CENTOS_STREAM=${{ matrix.centos-stream }} \ | |
| ${{ matrix.test-docker-image }} \ | |
| /fluentd/fluent-package/yum/binstubs-test.sh | |
| v1test: | |
| name: Test ${{ matrix.label }} ${{ matrix.test-file }} (CGroup V1) | |
| needs: [check_package_size, installation_test, serverspec_test, binstubs_test] | |
| # Ubuntu 20.04 is not available anymore, so can't use container based | |
| # approach. Instead, use vagrant on Ubuntu 24.04. | |
| # (NOTE: nested VM is executable on macos-13, but it is too slow) | |
| runs-on: ubuntu-24.04 | |
| timeout-minutes: 15 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| label: | |
| - AmazonLinux 2 x86_64 | |
| - AmazonLinux 2023 x86_64 | |
| test-file: | |
| - "update-from-v4.sh" | |
| - "update-to-next-version-with-backward-compat-for-v4.sh" | |
| - "downgrade-to-v4.sh" | |
| - "install-newly.sh local" | |
| - "install-newly.sh v5" | |
| - "install-newly.sh lts" | |
| include: | |
| - label: AmazonLinux 2 x86_64 | |
| rake-job: amazonlinux-2 | |
| - label: AmazonLinux 2023 x86_64 | |
| rake-job: amazonlinux-2023 | |
| exclude: | |
| - label: AmazonLinux 2023 x86_64 | |
| test-file: update-from-v4.sh | |
| - label: AmazonLinux 2023 x86_64 | |
| test-file: update-to-next-version-with-backward-compat-for-v4.sh | |
| - label: AmazonLinux 2023 x86_64 | |
| test-file: downgrade-to-v4.sh | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| name: packages-${{ matrix.rake-job }} | |
| - name: Show host runner information | |
| run: | | |
| cat /proc/cpuinfo | grep -E "vmx|svm" | |
| lsmod | grep kvm | |
| - name: Set up virtualbox | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y virtualbox | |
| - name: Set up vagrant | |
| run: | | |
| sudo apt-get update | |
| wget -O - https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg | |
| echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list | |
| sudo apt-get update && sudo apt install -y vagrant | |
| vagrant --version | |
| vagrant status | |
| - name: Spin up vagrant | |
| run: | | |
| vagrant up --provider virtualbox ${{ matrix.rake-job }} | |
| # Run tests based on AlmaLinux 8 (CGroup v1) | |
| - name: Run Test ${{ matrix.test-file }} on ${{ matrix.rake-job }} | |
| run: | | |
| BOX_MOUNT_DIR=fluent-package/yum/repositories vagrant ssh ${{ matrix.rake-job }} -- /host/fluent-package/yum/systemd-test/${{ matrix.test-file }} | |
| v2test: | |
| name: Test ${{ matrix.label }} ${{ matrix.test-file }} (CGroup V2) | |
| needs: [check_package_size, installation_test, serverspec_test, binstubs_test] | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| label: | |
| - RockyLinux 8 x86_64 | |
| - AlmaLinux 9 x86_64 | |
| test-file: | |
| - "update-from-v4.sh" | |
| - "update-to-next-version-with-backward-compat-for-v4.sh" | |
| - "downgrade-to-v4.sh" | |
| - "install-newly.sh local" | |
| - "install-newly.sh v5" | |
| - "install-newly.sh lts" | |
| include: | |
| - label: RockyLinux 8 x86_64 | |
| rake-job: rockylinux-8 | |
| container-image: images:rockylinux/8 | |
| - label: AlmaLinux 9 x86_64 | |
| rake-job: almalinux-9 | |
| container-image: images:almalinux/9 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| name: packages-${{ matrix.rake-job }} | |
| - name: Install Incus | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y -V incus | |
| - name: Allow egress network traffic flows for Incus | |
| # https://linuxcontainers.org/incus/docs/main/howto/network_bridge_firewalld/#prevent-connectivity-issues-with-incus-and-docker | |
| run: | | |
| sudo iptables -I DOCKER-USER -i incusbr0 -j ACCEPT | |
| sudo iptables -I DOCKER-USER -o incusbr0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT | |
| - name: Setup Incus | |
| run: | | |
| sudo incus admin init --auto | |
| - name: Run Test ${{ matrix.test-file }} on ${{ matrix.container-image }} | |
| run: fluent-package/yum/systemd-test/test.sh ${{ matrix.container-image }} ${{ matrix.test-file }} |