From 0ed0256f2aa2b12000dcca68fb2a5eea6c09b8c2 Mon Sep 17 00:00:00 2001 From: Shizuo Fujita Date: Fri, 13 Mar 2026 16:48:25 +0900 Subject: [PATCH] CI: Introduce ruby_versions.yml to add supported Ruby versions automatically Signed-off-by: Shizuo Fujita --- .github/workflows/ci.yml | 47 ++++++++++++++----- .github/workflows/pr.yml | 45 ------------------ ...Dockerfile.ruby32 => Dockerfile.ruby-base} | 4 +- test/docker/Dockerfile.ruby34 | 7 --- 4 files changed, 38 insertions(+), 65 deletions(-) delete mode 100644 .github/workflows/pr.yml rename test/docker/{Dockerfile.ruby32 => Dockerfile.ruby-base} (67%) delete mode 100644 test/docker/Dockerfile.ruby34 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1d96f22..adc7b50 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,10 +2,39 @@ name: CI on: push: - branches: - - master + branches: [master] + pull_request: + branches: [master] + schedule: + - cron: '0 0 1 * *' jobs: + ruby-versions: + uses: ruby/actions/.github/workflows/ruby_versions.yml@master + with: + engine: cruby + min_version: 3.2 + docker-ruby-base: + needs: ruby-versions + name: Ruby ${{ matrix.ruby }} + strategy: + matrix: + ruby: ${{ fromJson(needs.ruby-versions.outputs.versions) }} + exclude: + - ruby: head + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 + - name: Build and push + id: docker_build + uses: docker/build-push-action@d08e5c354a6adb9ed34480a06d141179aa583294 # v7.0.0 + with: + file: test/docker/Dockerfile.ruby-base + build-args: | + RUBY_VERSION=${{ matrix.ruby }} + docker: name: ${{ matrix.target.env }} strategy: @@ -17,10 +46,6 @@ jobs: dockerfile: Dockerfile.tdagent-ubuntu - env: td-agent-rpm dockerfile: Dockerfile.tdagent-almalinux - - env: ruby32 - dockerfile: Dockerfile.ruby32 - - env: ruby34 - dockerfile: Dockerfile.ruby34 runs-on: ubuntu-latest steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 @@ -31,14 +56,12 @@ jobs: uses: docker/build-push-action@d08e5c354a6adb9ed34480a06d141179aa583294 # v7.0.0 with: file: test/docker/${{ matrix.target.dockerfile }} + rubocop: runs-on: ubuntu-latest steps: - - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - - uses: ruby/setup-ruby@6ca151fd1bfcfd6fe0c4eb6837eb0584d0134a0c # v1.290.0 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - uses: ruby/setup-ruby@6ca151fd1bfcfd6fe0c4eb6837eb0584d0134a0c # v1.290.0 with: bundler-cache: true - - - run: bundle exec rake rubocop + - run: bundle exec rake rubocop diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml deleted file mode 100644 index 67749df..0000000 --- a/.github/workflows/pr.yml +++ /dev/null @@ -1,45 +0,0 @@ -name: Pull Request Checks - -on: - pull_request: - -jobs: - docker: - name: ${{ matrix.target.env }} - strategy: - matrix: - target: - - env: ubuntu - dockerfile: Dockerfile.ubuntu - - env: td-agent-deb - dockerfile: Dockerfile.tdagent-ubuntu - - env: td-agent-rpm - dockerfile: Dockerfile.tdagent-almalinux - - env: ruby32 - dockerfile: Dockerfile.ruby32 - - env: ruby34 - dockerfile: Dockerfile.ruby34 - runs-on: ubuntu-latest - steps: - - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 - - - name: Build and push - id: docker_build - uses: docker/build-push-action@d08e5c354a6adb9ed34480a06d141179aa583294 # v7.0.0 - with: - file: test/docker/${{ matrix.target.dockerfile }} - rubocop: - runs-on: ubuntu-latest - steps: - - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - - uses: ruby/setup-ruby@6ca151fd1bfcfd6fe0c4eb6837eb0584d0134a0c # v1.290.0 - with: - bundler-cache: true - - - run: bundle exec rake rubocop diff --git a/test/docker/Dockerfile.ruby32 b/test/docker/Dockerfile.ruby-base similarity index 67% rename from test/docker/Dockerfile.ruby32 rename to test/docker/Dockerfile.ruby-base index 6ec6c22..9704f32 100644 --- a/test/docker/Dockerfile.ruby32 +++ b/test/docker/Dockerfile.ruby-base @@ -1,4 +1,6 @@ -FROM ruby:3.2 +ARG RUBY_VERSION=3.2 + +FROM ruby:${RUBY_VERSION} WORKDIR /usr/local/src diff --git a/test/docker/Dockerfile.ruby34 b/test/docker/Dockerfile.ruby34 deleted file mode 100644 index 606aa48..0000000 --- a/test/docker/Dockerfile.ruby34 +++ /dev/null @@ -1,7 +0,0 @@ -FROM ruby:3.4 - -WORKDIR /usr/local/src - -COPY . . -RUN bundle install -j4 -r3 -RUN bundle exec rake test TESTOPTS="-v"