-
Notifications
You must be signed in to change notification settings - Fork 63
Open
Labels
blocked:needs-inputWaiting on human decision or external infoWaiting on human decision or external infostatus:blockedTask is blocked on somethingTask is blocked on something
Description
Summary
All 31 plugin repos with GitHub Actions CI use the broken workarea-commerce/ci/bundler-audit@v1, rubocop@v1, eslint@v1, and stylelint@v1 Docker actions which are pinned to FROM ruby:2.6. These fail on every push.
4 repos (google-analytics, google-tag-manager, sitemaps, demo) have no CI at all.
Approach
Apply the same CI fix from PR #657 (main repo) across all 35 plugin repos:
- Replace Docker-based CI actions with direct
ruby/setup-ruby+ gem execution - Use Ruby 2.7 (minimum supported) as primary, 3.2 as secondary matrix entry
- SHA-pin third-party actions
- Add CI to the 4 repos that have none
- Use a common CI template where possible
Plugin CI template structure:
name: CI
on: [push, pull_request]
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with: { ruby-version: '2.7', bundler-cache: true }
- run: bundle exec rubocop
- run: bundle exec bundler-audit check --update
test:
runs-on: ubuntu-latest
strategy:
matrix:
ruby: ['2.7', '3.2']
services:
mongodb: ...
elasticsearch: ...
redis: ...
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with: { ruby-version: ${{ matrix.ruby }}, bundler-cache: true }
- run: bundle exec rake testObjective
Get CI green and running across all 35 plugin repos.
Client impact
None — CI infrastructure only.
Acceptance Criteria
- All 35 plugin repos have working GitHub Actions CI
- CI passes on Ruby 2.7 for all repos
- Ruby 3.2 matrix entry (informational) on all repos
- PRs opened on each repo
Verification Plan
- Push CI fix to each repo, verify Actions run
- At least lint job passes on each repo
- Test jobs pass where the plugin has a test suite
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
blocked:needs-inputWaiting on human decision or external infoWaiting on human decision or external infostatus:blockedTask is blocked on somethingTask is blocked on something