Skip to content

Spike: Shared workflow updates#35

Open
jonrandahl wants to merge 12 commits intomainfrom
spike/shared-workflow-updates
Open

Spike: Shared workflow updates#35
jonrandahl wants to merge 12 commits intomainfrom
spike/shared-workflow-updates

Conversation

@jonrandahl
Copy link
Copy Markdown
Contributor

Refactors and standardises the GitHub Actions CI/CD pipeline for gem publishing, incorporating reusable workflows and enhancing local development consistency. Provides comprehensive documentation for the updated build and release process.

What's changed:

  • GitHub Actions workflows were refactored to use shared reusable workflows for gem publishing, improving maintainability and consistency.
  • Automated quality gates were introduced for gem publishing, ensuring Rubocop compliance and unit tests pass before a release.
  • Unit test and Rubocop workflows were enhanced with support for manual dispatch and reusability, allowing them to be called by other workflows.
  • CI triggers were refined to run only on the main branch for pushes and pull requests, preventing duplicate runs.
  • The Makefile was extensively updated to standardise build processes, separating verification, packaging, and publishing into distinct, composable targets.
  • Comprehensive documentation was added to explain the GitHub Actions workflows, their triggers, and the gem release process.
  • Local development and maintenance dependencies were updated to their latest versions.
  • Gem publishing instructions in the README.md were updated to reflect the new Makefile targets and CI pipeline.

- Enabled Rubocop workflow as reusable and manual workflow
- Scoped push and pull request triggers to main for both workflows
- Documented trigger intent inline for Rubocop workflow
- Added manual dispatch support for workflow
- Scoped push and pull request triggers to main for both workflows
- Added Rubocop compliance as a required check before publishing
- Renamed verify-code job to verify-unit-tests for clarity
- Publish job now requires both lint and test gates to pass
- Updated build to run clean, checks, and gem as a single orchestration path
- Removed direct gem build invocation from build to keep package creation logic in one canonical target
- Clarified the gem target description to represent general package creation rather than release-only usage
- outline the purpose and function of each workflow
- detail triggers, steps, and notes for better understanding
- include troubleshooting guidance for common issues
- explain how to manually trigger the publishing workflow
- document `Makefile` targets for verification and packaging
- update gem publishing instructions to use `make build`
- revise API_SERVICE_URL environment variable
- Introduce a `:maintenance` group to explicitly track runtime dependencies
- This allows `bundle outdated --only-explicit` to check these gems
- Add `foreman` to the `:development` group for local process management
- Restrict `byebug` to `mri` and `windows` platforms
- Detail enhancements to the continuous integration and delivery pipeline.
- Outline improvements to build process standardisation and verification gates.
- Cover updates to documentation for workflows, Makefile targets, and publishing instructions.
@jonrandahl jonrandahl self-assigned this Apr 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant