-
Notifications
You must be signed in to change notification settings - Fork 4
Improve helm chart workflow. #119
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
mxssl
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Findings from review:
-
chart/nodecore/CODEOWNERSwill not be enforced by GitHub. CODEOWNERS files are only loaded from.github/CODEOWNERS,/CODEOWNERS, or/docs/CODEOWNERS. Also, the owner token should be@drpcorg/infra(team slug), not@drpcorg/teams/infra. As written, the intended required-review protection for chart changes is effectively not active. -
.github/workflows/publish-chart.ymlnow gates the publish job withif: github.event_name == 'push' && github.ref == 'refs/heads/main'while still definingworkflow_dispatchinputs. This makes manual dispatch unable to publish (the job is skipped onworkflow_dispatch), which is a behavioral regression from the previous workflow.\n\n3) The PR trigger path filter only includeschart/nodecore/**. Workflow and composite-action changes under.github/**(including this chart publish workflow/action) won’t run this CI in future PRs, so chart-publish pipeline changes can merge unvalidated.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR improves the NodeCore Helm chart workflow by adding stricter CI validation (linting + version checks), introducing a values JSON schema for Helm validation, and adding chart ownership/metadata documentation.
Changes:
- Added
values.schema.jsonfor Helm values validation and updatedvalues.yamlformatting/types. - Updated the GitHub Actions workflow to lint on PRs and validate chart version increments.
- Added chart maintainers metadata plus contribution and ownership files.
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 9 comments.
Show a summary per file
| File | Description |
|---|---|
chart/nodecore/values.yaml |
Normalizes YAML formatting and quotes CPU values; restructures example nodecoreConfig. |
chart/nodecore/values.schema.json |
Introduces a JSON schema for Helm values validation. |
chart/nodecore/Chart.yaml |
Adds maintainers metadata to the chart. |
chart/nodecore/CODEOWNERS |
Attempts to define code ownership for chart changes. |
CONTRIBUTING.md |
Documents schema update expectations and CI behavior for chart PRs. |
.github/workflows/publish-chart.yml |
Adds PR path triggers, stricter linting, and a chart version check action; adjusts publishing conditions. |
.github/actions/check-chart-version/action.yml |
Adds a composite action to enforce chart version > latest nodecore-* tag. |
Comments suppressed due to low confidence (2)
.github/workflows/publish-chart.yml:113
- The publish job packages and pushes the chart without running any chart validation (lint/schema render) in the same job. If something lands on
mainwithout the PR checks (e.g., direct pushes, reruns, or future workflow changes), an invalid chart could be published; consider runninghelm lint --strict(and/orct lint) in the publish job as a gate beforehelm package/helm push.
- name: Package & push nodecore chart
run: |
CHART_VERSION_TAG=$(yq e '.version' ${{ env.CHART_DIR }}/Chart.yaml)
echo "CHART_VERSION_TAG=${CHART_VERSION_TAG}" >> $GITHUB_ENV
helm package "${{ env.CHART_DIR }}" \
--version="${CHART_VERSION_TAG}" \
--app-version="${CHART_VERSION_TAG}"
.github/workflows/publish-chart.yml:73
actions/checkout@v5is not a valid release ofactions/checkout(the latest stable major is v4). This will make the publish job fail to start; useactions/checkout@v4(or pin to a commit SHA) instead.
- name: Checkout
uses: actions/checkout@v5
with:
ref: ${{ inputs.ref != '' && inputs.ref || github.ref_name }}
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Code Review for PR #119: Improve helm chart workflowSummaryThis PR adds CI validation (linting, version checks), a Critical Issues1. CODEOWNERS file is in the wrong location 2. if: github.event_name == 'push' && github.ref == 'refs/heads/main'excludes if: (github.event_name == 'push' && github.ref == 'refs/heads/main') || github.event_name == 'workflow_dispatch'3. Medium Issues4. PR path trigger is too narrow pull_request:
paths:
- 'chart/nodecore/**'Changes to paths:
- 'chart/nodecore/**'
- '.github/workflows/publish-chart.yml'
- '.github/actions/check-chart-version/**'5. Redundant checkout in composite action 6.
7. Minor / Nits8. Commented-out branch trigger # - helm-chartIf the 9. 10. Publish job lacks validation gate 11. No What looks good
Overall: The intent is good but there are functional issues (broken CODEOWNERS, broken |
No description provided.