Skip to content

Restructure CI/CD pipelines into reusable composite actions #587

Description

@Smartdevs17

Context

11 GitHub Actions workflows have significant duplication (checkout, Node setup, caching, linting, testing). Maintenance cost is high and updates require touching all workflows.

Current Limitation/Problem

A change to the Node setup step requires updating all 11 workflows. Some workflows exceed 300 lines of YAML with copy-pasted blocks.

Expected Outcome

Reusable composite actions: setup-node, build-contracts, run-tests, deploy-service. Each workflow is a short orchestration file (<50 lines) composing these actions.

Acceptance Criteria

  • setup-node composite action: checkout, Node setup, dependency caching, .env generation from secrets
  • build-contracts composite action: Rust toolchain setup, Soroban CLI, WASM build, artifact upload
  • run-tests composite action: Jest config, coverage thresholds, JUnit report output
  • deploy-service composite action: Docker build, image push to registry, Helm deploy with rollback
  • All 11 workflows refactored to <50 lines each using composite actions
  • Local testing: actions testable with act CLI (nektos/act)
  • Edge case: action version pinning with semantic version tags (v1.2.3)

Technical Scope

  • .github/actions/setup-node/action.yml - reusable composite action
  • .github/actions/build-contracts/action.yml - reusable composite action
  • .github/actions/run-tests/action.yml - reusable composite action
  • .github/actions/deploy-service/action.yml - reusable composite action
  • .github/workflows/ - refactored all 11 workflows
  • .github/workflows/test-actions.yml - integration test for all actions

Metadata

Metadata

Assignees

Labels

200-points200 point issueStellar WaveIssues in the Stellar wave programdrips-waveIssues in the Drips Wave programhighHigh complexity issue

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions