Skip to content

changecrd

changecrd #41

Workflow file for this run

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