diff --git a/.github/workflows/compare.yaml b/.github/workflows/compare.yaml index b711474d..904f5a48 100644 --- a/.github/workflows/compare.yaml +++ b/.github/workflows/compare.yaml @@ -35,16 +35,24 @@ jobs: run: | echo "Checking for changes compared with: ${{ github.event.pull_request.base.ref }}" CHANGED_FILES=$(git diff --name-only origin/${{ github.event.pull_request.base.ref }}..HEAD -- ${{ env.SCHEMA_DIR }} | grep '\.yaml$') - CHANGED_FILES=$(echo "$CHANGED_FILES" | sed "s|^${{ env.SCHEMA_DIR }}/||" | tr '\n' ' ') - echo "CHANGED_FILES=$CHANGED_FILES" >> $GITHUB_ENV + if [ -z "$CHANGED_FILES" ]; then + echo "No schema files changed." + echo "schema_files_changed=false" >> $GITHUB_ENV + else + CHANGED_FILES=$(echo "$CHANGED_FILES" | sed "s|^${{ env.SCHEMA_DIR }}/||" | tr '\n' ' ') + echo "CHANGED_FILES=$CHANGED_FILES" >> $GITHUB_ENV + echo "schema_files_changed=true" >> $GITHUB_ENV + fi - name: Check out PR base ref + if: env.schema_files_changed == 'true' uses: actions/checkout@v4 with: ref: ${{ github.event.pull_request.base.ref }} path: base-ref - name: Run deepdiff comparison + if: env.schema_files_changed == 'true' run: | for file in ${{ env.CHANGED_FILES }}; do echo "Comparing $file..." @@ -54,6 +62,7 @@ jobs: done - name: Run alembic comparison + if: env.schema_files_changed == 'true' run: | for file in ${{ env.CHANGED_FILES }}; do echo "Comparing $file..." @@ -63,6 +72,7 @@ jobs: done - name: Run alembic comparison on deployed schemas + if: env.schema_files_changed == 'true' run: | ERROR_FLAG=0 DEPLOYED_SCHEMAS=$(cat current-ref/yml/deployed-schemas.txt)