feat: add CI/CD pipeline with GitHub Actions#98
Open
rhjcd wants to merge 1 commit intorh-aiservices-bu:devfrom
Open
feat: add CI/CD pipeline with GitHub Actions#98rhjcd wants to merge 1 commit intorh-aiservices-bu:devfrom
rhjcd wants to merge 1 commit intorh-aiservices-bu:devfrom
Conversation
Adds three workflow files that automate the build, test, and release pipeline — previously all builds, tests, and deployments were manual. - ci.yml: lint, typecheck, unit/integration/security tests, and container image builds on PR/push to main/dev - release.yml: build and push images to Quay.io on version tags, with automatic GitHub Release creation - helm-lint.yml: validate Helm chart on changes to deployment/helm/
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
ci.yml): Runs lint, typecheck, backend tests (unit/integration/security with PostgreSQL service), frontend tests, and container image builds on every PR and push tomain/dev. Jobs run in parallel with a final build gate.release.yml): Triggered on version tags (v*). Runs tests, builds and pushes backend/frontend images toquay.io/rh-aiservices-buwith version +latesttags, and creates a GitHub Release with auto-generated notes.helm-lint.yml): Validates the Helm chart on changes todeployment/helm/. Tests template rendering with default values, OpenShift routes enabled, and existing secrets configurations. Warns if defaultchangemepasswords leak into templates.Why
The project has comprehensive test infrastructure (Vitest unit tests, integration tests, security tests, ESLint, TypeScript checking) but zero automated CI/CD. All builds, tests, and deployments are manual. This is the highest-priority DevOps gap identified during a full-stack review.
Setup Required
For the release workflow to push images, the following repository secrets must be configured:
QUAY_USERNAME— Quay.io robot account usernameQUAY_PASSWORD— Quay.io robot account tokenTest plan
main— verify lint, typecheck, and test jobs passv*tag push (test with a pre-release tag)latesttags