Skip to content

WA-CI-004: Fix CI across all plugin repos (replace broken Docker actions) #724

@kitcommerce

Description

@kitcommerce

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:

  1. Replace Docker-based CI actions with direct ruby/setup-ruby + gem execution
  2. Use Ruby 2.7 (minimum supported) as primary, 3.2 as secondary matrix entry
  3. SHA-pin third-party actions
  4. Add CI to the 4 repos that have none
  5. 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 test

Objective

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

  1. Push CI fix to each repo, verify Actions run
  2. At least lint job passes on each repo
  3. Test jobs pass where the plugin has a test suite

Metadata

Metadata

Assignees

No one assigned

    Labels

    blocked:needs-inputWaiting on human decision or external infostatus:blockedTask is blocked on something

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions