Skip to content

ci: add Harness CI pipeline (FME-17651) - #630

Merged
sanzmauro merged 16 commits into
developmentfrom
harness-pipeline/FME-17651
Jul 28, 2026
Merged

ci: add Harness CI pipeline (FME-17651)#630
sanzmauro merged 16 commits into
developmentfrom
harness-pipeline/FME-17651

Conversation

@sanzmauro

@sanzmauro sanzmauro commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Migrates .github/workflows/ci.yml to Harness CI pipeline at .harness/pipeline.yaml
  • Matrix: Ruby 2.7.8 + 3.2.2 using mise for Ruby install on Cloud runners
  • Redis via apt-get, SonarQube scan + quality gate on Ruby 3.2.2 only
  • Pipeline registered in Harness under org PROD / project Harness_Split via fmegithubharnessgitops connector
Migrates .github/workflows/ci.yml to Harness pipeline.
Matrix: Ruby 2.5.0 + 3.2.2, Redis, SonarQube on 3.2.2.

AI-Session-Id: 9153b465-d572-4ac3-be0e-961ad258c1e0
AI-Tool: claude-code
AI-Model: unknown
- Add RVM sourcing to Fix Coverage Paths step to ensure Ruby is available
- Change Post Quality Gate step shell from Sh to Bash for proper script semantics

AI-Session-Id: 9153b465-d572-4ac3-be0e-961ad258c1e0
AI-Tool: claude-code
AI-Model: unknown
AI-Session-Id: 9a0ab88e-2949-4146-8ca0-48dd019332ad
AI-Tool: claude-code
AI-Model: unknown
Replace RVM-based Ruby install with official ruby:<version> container
images per matrix version. Redis runs as a Background container step.
SonarQube uses sonarsource/sonar-scanner-cli:latest image.
Simplifies pipeline: no apt-get, no RVM, no Java setup needed.

AI-Session-Id: 9a0ab88e-2949-4146-8ca0-48dd019332ad
AI-Tool: claude-code
AI-Model: unknown
AI-Session-Id: 9a0ab88e-2949-4146-8ca0-48dd019332ad
AI-Tool: claude-code
AI-Model: unknown
AI-Session-Id: 9a0ab88e-2949-4146-8ca0-48dd019332ad
AI-Tool: claude-code
AI-Model: unknown
AI-Session-Id: 9a0ab88e-2949-4146-8ca0-48dd019332ad
AI-Tool: claude-code
AI-Model: unknown
…ages

AI-Session-Id: 9a0ab88e-2949-4146-8ca0-48dd019332ad
AI-Tool: claude-code
AI-Model: unknown
@sanzmauro
sanzmauro requested a review from a team as a code owner July 28, 2026 00:33
…stubs

- Wrap SPLITCLIENT_ENV='prod' in sync_manager_spec with ensure block so
  env is always reset even if the test raises, preventing thread leaks
  into subsequent specs
- Add rbSince=-1 to two splitChanges stubs in split_manager_spec that
  were missing the parameter added in the rbs-old-spec feature
- Add Redis readiness check step in Harness pipeline before running tests

AI-Session-Id: 9a0ab88e-2949-4146-8ca0-48dd019332ad
AI-Tool: claude-code
AI-Model: unknown
AI-Session-Id: 9a0ab88e-2949-4146-8ca0-48dd019332ad
AI-Tool: claude-code
AI-Model: unknown
AI-Session-Id: 9a0ab88e-2949-4146-8ca0-48dd019332ad
AI-Tool: claude-code
AI-Model: unknown
…ssertions

Redis smembers returns set members in non-deterministic order, making
index-based impression assertions for :testing and :testing222 flaky.
Replace with find { |i| i[:split_name] == :X } in all four affected
flag_set/flag_sets impression test blocks.

AI-Session-Id: 9a0ab88e-2949-4146-8ca0-48dd019332ad
AI-Tool: claude-code
AI-Model: unknown
The 'processing split iff update event' test was flaky because
process_subsystem_ready fires sync_all async after SSE connect, which
could fetch splits_push3 (adding push_test) before the SPLIT_UPDATE
SSE event arrived with the inline bilal_split payload.

Replace the since=1585948850110 stub with a no-change response
(till == since) so the background sync never advances changeNumber
past pcn, ensuring the inline update path always succeeds.

AI-Session-Id: 9a0ab88e-2949-4146-8ca0-48dd019332ad
AI-Tool: claude-code
AI-Model: unknown
…exing

SonarQube was failing with 'File can\''t be indexed twice' because
sonar.sources=. included spec/ in main sources while SonarQube also
auto-detected spec/ as test files. Scoping sources to lib/ and
explicitly declaring spec/ as tests resolves the conflict.

AI-Session-Id: 9a0ab88e-2949-4146-8ca0-48dd019332ad
AI-Tool: claude-code
AI-Model: unknown
@sonarqube-pull-requests

Copy link
Copy Markdown
AI-Session-Id: 9a0ab88e-2949-4146-8ca0-48dd019332ad
AI-Tool: claude-code
AI-Model: unknown
@sanzmauro
sanzmauro merged commit d4b224c into development Jul 28, 2026
2 of 4 checks passed
@sanzmauro
sanzmauro deleted the harness-pipeline/FME-17651 branch July 28, 2026 17:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

2 participants