mirror of
https://github.com/vmware-tanzu/velero.git
synced 2026-08-28 20:06:37 +00:00
config/crd/{v1,v2alpha1}/crds/crds.go were generated files that
gzip-compressed the CRD YAML bases into committed []byte literals via
hack/crd-gen, requiring `go generate` and a dedicated CI drift check
(hack/verify-generated-crd-code.sh). This made the files large,
unreviewable in diffs, and a frequent source of merge conflicts.
Replace the generated files with config/crd/{v1,v2alpha1}/crds.go
using `//go:embed bases/*.yaml` to embed the already-committed YAML
manifests directly, decoding them the same way at init. Since Go's
go:embed can't reach outside a file's own directory tree, the crds
package now lives alongside bases/ instead of in a bases-sibling
subdirectory; import paths in pkg/install and pkg/controller were
updated accordingly.
Drop hack/crd-gen and hack/verify-generated-crd-code.sh entirely, and
trim their references from update-3generated-crd-code.sh and the
codespell skip-list. No codegen step remains, so no drift is possible.
Fixes #10328
AI-Tool-Used: Claude Code
AI-Tool-Use-Level: Category 1 (High)
AI-Code-Category: Category 1 (Production)
Signed-off-by: lubronzhan <lubron.zhan@broadcom.com>
Co-authored-by: Daniel Jiang <daniel.jiang@broadcom.com>
58 lines
1.8 KiB
YAML
58 lines
1.8 KiB
YAML
name: Pull Request Codespell Check
|
|
on: [pull_request]
|
|
jobs:
|
|
|
|
codespell:
|
|
if: github.repository == 'velero-io/velero'
|
|
name: Run Codespell
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
|
|
- name: Check out the code
|
|
uses: actions/checkout@v7
|
|
|
|
- name: Codespell
|
|
uses: codespell-project/actions-codespell@master
|
|
with:
|
|
skip: .git,*.png,*.jpg,*.woff,*.ttf,*.gif,*.ico,./go.sum,./LICENSE
|
|
ignore_words_list: iam,aks,ist,bridget,ue,shouldnot,atleast,notin,sme,optin,sie
|
|
check_filenames: true
|
|
check_hidden: true
|
|
|
|
- name: Velero.io word list check
|
|
shell: bash {0}
|
|
run: |
|
|
IGNORE_COMMENT="Velero.io word list : ignore"
|
|
FILES_TO_CHECK=$(find . -type f \
|
|
! -path "./.git/*" \
|
|
! -path "./site/content/docs/v*" \
|
|
! -path "./changelogs/CHANGELOG-*" \
|
|
! -path "./.github/workflows/pr-codespell.yml" \
|
|
! -path "./site/static/fonts/Metropolis/Open Font License.md" \
|
|
! -regex '.*\.\(png\|jpg\|woff\|ttf\|gif\|ico\|svg\)'
|
|
)
|
|
function check_word_in_files() {
|
|
local word=$1
|
|
|
|
xargs grep -Iinr "$word" <<< "$FILES_TO_CHECK" | \
|
|
grep -v "$IGNORE_COMMENT" | \
|
|
grep -i --color=always "$word" && \
|
|
EXIT_STATUS=1
|
|
}
|
|
function check_word_case_sensitive_in_files() {
|
|
local word=$1
|
|
|
|
xargs grep -Inr "$word" <<< "$FILES_TO_CHECK" | \
|
|
grep -v "$IGNORE_COMMENT" | \
|
|
grep --color=always "$word" && \
|
|
EXIT_STATUS=1
|
|
}
|
|
EXIT_STATUS=0
|
|
check_word_case_sensitive_in_files ' kubernetes '
|
|
check_word_in_files 'on-premise\b'
|
|
check_word_in_files 'back-up'
|
|
check_word_in_files 'plug-in'
|
|
check_word_in_files 'whitelist'
|
|
check_word_in_files 'blacklist'
|
|
exit $EXIT_STATUS
|