changecrd #41
This file contains 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
name: Check CRD Version Update | |
on: | |
pull_request: | |
paths: | |
- 'pkg/k8s/apis/cilium.io/client/crds/v1alpha1/*.yaml' | |
jobs: | |
check-version: | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: ${{ github.event_name == 'pull_request' && 2 || 0 }} | |
- name: Get all changed files | |
id: changed-files | |
uses: jitterbit/get-changed-files@v1 | |
- name: Check for CRD changes and version update | |
run: | | |
if echo "${{ env.changed_files }}" | grep -q 'pkg/k8s/apis/cilium.io/client/crds/v1alpha1/'; then | |
old_version=$(git show ${{ github.event.pull_request.base.sha }}:pkg/k8s/apis/cilium.io/v1alpha1/register.go | grep 'CustomResourceDefinitionSchemaVersion' | awk -F'"' '{print $2}') | |
echo "old_version=$old_version" | |
new_version=$(grep 'CustomResourceDefinitionSchemaVersion' pkg/k8s/apis/cilium.io/v1alpha1/register.go | awk -F'"' '{print $2}') | |
if [ -z "$old_version" ]; then | |
echo "Error: Unable to retrieve old version from the base branch" | |
exit 1 | |
fi | |
if echo "$changed_file" | grep -q 'pkg/k8s/apis/cilium.io/v1alpha1/register.go'; then | |
old_version=$(git show ${{ github.event.pull_request.base.sha }}:pkg/k8s/apis/cilium.io/v1alpha1/register.go | grep 'CustomResourceDefinitionSchemaVersion' | awk -F'"' '{print $2}') | |
new_version=$(grep 'CustomResourceDefinitionSchemaVersion' $changed_file | awk -F'"' '{print $2}') | |
echo "old_version=$old_version" | |
echo "new_version=$new_version" | |
if [ "$old_version" != "$new_version" ]; then | |
version_changed=true | |
fi | |
fi | |
done | |
if [ "$crd_changed" = true ] && [ "$version_changed" = false ]; then | |
echo "CRD changed but version not updated" | |
exit 1 | |
fi | |
if [ "$crd_changed" = false ] && [ "$version_changed" = true ]; then | |
echo "Version updated but CRD not changed" | |
exit 1 | |
fi | |
echo crd_changed=$crd_changed | |
echo version_changed=$version_changed |