From 7b2667990ce44559d2d4cbe569747a4b30fef22f Mon Sep 17 00:00:00 2001 From: Chahdra Konlack Date: Thu, 9 Nov 2023 14:21:24 -0500 Subject: [PATCH 01/18] Add logic to run pytype only on changed files --- .github/workflows/python-quality-checks.yml | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/.github/workflows/python-quality-checks.yml b/.github/workflows/python-quality-checks.yml index 9e88535..a409b6d 100644 --- a/.github/workflows/python-quality-checks.yml +++ b/.github/workflows/python-quality-checks.yml @@ -11,6 +11,10 @@ on: description: Relative path under $GITHUB_WORKSPACE where the project is located. required: false type: string + type-checked-only-changed-files: + description: Run type check only on changed files + required: false + default: 'false' jobs: pre-checks: @@ -83,7 +87,21 @@ jobs: - name: Run pytype working-directory: ${{ inputs.working-directory }} - run: ${{ needs.setup.outputs.dependencies-manager }} run pytype + run: | + if [[ "${{ inputs.type-checked-only-changed-files }}" == "true" ]] ; then + CHANGED_FILES=$(git diff --name-only origin/${GITHUB_HEAD_REF} | grep '\.py$') + NUM_CHANGED_FILES=$(echo "$CHANGED_FILES" | grep -v -e '^\s*$' | wc -l || :) + if [[ $NUM_CHANGED_FILES -le 0 ]] ; then + echo "No file changes. Skip" + exit 0 + else + echo "Running pytype on changed files" + echo "$CHANGED_FILES" + ${{ needs.setup.outputs.dependencies-manager }} run pytype $CHANGED_FILES + fi + else + ${{ needs.setup.outputs.dependencies-manager }} run pytype + fi code-style: name: Code style From 164e4e3ba411e2ed799429590e256f05133e8173 Mon Sep 17 00:00:00 2001 From: Chahdra Konlack Date: Thu, 9 Nov 2023 14:32:23 -0500 Subject: [PATCH 02/18] fix input type --- .github/workflows/python-quality-checks.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/python-quality-checks.yml b/.github/workflows/python-quality-checks.yml index a409b6d..c634c82 100644 --- a/.github/workflows/python-quality-checks.yml +++ b/.github/workflows/python-quality-checks.yml @@ -14,7 +14,8 @@ on: type-checked-only-changed-files: description: Run type check only on changed files required: false - default: 'false' + type: boolean + default: false jobs: pre-checks: @@ -88,6 +89,7 @@ jobs: - name: Run pytype working-directory: ${{ inputs.working-directory }} run: | + echo ${{ inputs.type-checked-only-changed-files }} if [[ "${{ inputs.type-checked-only-changed-files }}" == "true" ]] ; then CHANGED_FILES=$(git diff --name-only origin/${GITHUB_HEAD_REF} | grep '\.py$') NUM_CHANGED_FILES=$(echo "$CHANGED_FILES" | grep -v -e '^\s*$' | wc -l || :) From 92e12dfc4fb33ef049b5bf6572c1a2937f6f6dc2 Mon Sep 17 00:00:00 2001 From: Chahdra Konlack Date: Thu, 9 Nov 2023 14:36:26 -0500 Subject: [PATCH 03/18] WIP --- .github/workflows/python-quality-checks.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python-quality-checks.yml b/.github/workflows/python-quality-checks.yml index c634c82..9614f91 100644 --- a/.github/workflows/python-quality-checks.yml +++ b/.github/workflows/python-quality-checks.yml @@ -91,7 +91,7 @@ jobs: run: | echo ${{ inputs.type-checked-only-changed-files }} if [[ "${{ inputs.type-checked-only-changed-files }}" == "true" ]] ; then - CHANGED_FILES=$(git diff --name-only origin/${GITHUB_HEAD_REF} | grep '\.py$') + CHANGED_FILES=$(git diff --name-only origin/${GITHUB_HEAD_REF}... | grep '\.py$') NUM_CHANGED_FILES=$(echo "$CHANGED_FILES" | grep -v -e '^\s*$' | wc -l || :) if [[ $NUM_CHANGED_FILES -le 0 ]] ; then echo "No file changes. Skip" From 0312130debd6d424462c636261a4fc7eb475c7c5 Mon Sep 17 00:00:00 2001 From: Chahdra Konlack Date: Thu, 9 Nov 2023 14:47:07 -0500 Subject: [PATCH 04/18] WIP --- .github/workflows/python-quality-checks.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python-quality-checks.yml b/.github/workflows/python-quality-checks.yml index 9614f91..e4b7942 100644 --- a/.github/workflows/python-quality-checks.yml +++ b/.github/workflows/python-quality-checks.yml @@ -91,7 +91,7 @@ jobs: run: | echo ${{ inputs.type-checked-only-changed-files }} if [[ "${{ inputs.type-checked-only-changed-files }}" == "true" ]] ; then - CHANGED_FILES=$(git diff --name-only origin/${GITHUB_HEAD_REF}... | grep '\.py$') + CHANGED_FILES=$(git diff --name-only origin/master origin/${GITHUB_HEAD_REF} | grep '\.py$') NUM_CHANGED_FILES=$(echo "$CHANGED_FILES" | grep -v -e '^\s*$' | wc -l || :) if [[ $NUM_CHANGED_FILES -le 0 ]] ; then echo "No file changes. Skip" From 28909e063c30851220036003ce76d0678858add8 Mon Sep 17 00:00:00 2001 From: Chahdra Konlack Date: Thu, 9 Nov 2023 16:23:07 -0500 Subject: [PATCH 05/18] WIP --- .github/workflows/python-quality-checks.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/python-quality-checks.yml b/.github/workflows/python-quality-checks.yml index e4b7942..02b3c20 100644 --- a/.github/workflows/python-quality-checks.yml +++ b/.github/workflows/python-quality-checks.yml @@ -91,6 +91,7 @@ jobs: run: | echo ${{ inputs.type-checked-only-changed-files }} if [[ "${{ inputs.type-checked-only-changed-files }}" == "true" ]] ; then + git fetch origin CHANGED_FILES=$(git diff --name-only origin/master origin/${GITHUB_HEAD_REF} | grep '\.py$') NUM_CHANGED_FILES=$(echo "$CHANGED_FILES" | grep -v -e '^\s*$' | wc -l || :) if [[ $NUM_CHANGED_FILES -le 0 ]] ; then From c96b2dd3561168cb9bd80824f4b94c93574496bb Mon Sep 17 00:00:00 2001 From: Chahdra Konlack Date: Thu, 9 Nov 2023 16:47:13 -0500 Subject: [PATCH 06/18] Fix git diff --- .github/workflows/python-quality-checks.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python-quality-checks.yml b/.github/workflows/python-quality-checks.yml index 02b3c20..4c825df 100644 --- a/.github/workflows/python-quality-checks.yml +++ b/.github/workflows/python-quality-checks.yml @@ -92,7 +92,7 @@ jobs: echo ${{ inputs.type-checked-only-changed-files }} if [[ "${{ inputs.type-checked-only-changed-files }}" == "true" ]] ; then git fetch origin - CHANGED_FILES=$(git diff --name-only origin/master origin/${GITHUB_HEAD_REF} | grep '\.py$') + CHANGED_FILES=$(git diff --name-only origin/${GITHUB_HEAD_REF} | grep '\.py$') NUM_CHANGED_FILES=$(echo "$CHANGED_FILES" | grep -v -e '^\s*$' | wc -l || :) if [[ $NUM_CHANGED_FILES -le 0 ]] ; then echo "No file changes. Skip" From 681bcf2b114e6c66d1c54d12c588a2d667706001 Mon Sep 17 00:00:00 2001 From: Chahdra Konlack Date: Thu, 9 Nov 2023 17:00:40 -0500 Subject: [PATCH 07/18] input default-branch --- .github/workflows/python-quality-checks.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/python-quality-checks.yml b/.github/workflows/python-quality-checks.yml index 4c825df..68cfb39 100644 --- a/.github/workflows/python-quality-checks.yml +++ b/.github/workflows/python-quality-checks.yml @@ -16,6 +16,11 @@ on: required: false type: boolean default: false + default-branch: + description: "Default branch to compute changed files" + required: true + type: string + default: "master" jobs: pre-checks: @@ -92,7 +97,7 @@ jobs: echo ${{ inputs.type-checked-only-changed-files }} if [[ "${{ inputs.type-checked-only-changed-files }}" == "true" ]] ; then git fetch origin - CHANGED_FILES=$(git diff --name-only origin/${GITHUB_HEAD_REF} | grep '\.py$') + CHANGED_FILES=$(git diff --name-only origin/${{ inputs.default-branch }} origin/${GITHUB_HEAD_REF} | grep '\.py$') NUM_CHANGED_FILES=$(echo "$CHANGED_FILES" | grep -v -e '^\s*$' | wc -l || :) if [[ $NUM_CHANGED_FILES -le 0 ]] ; then echo "No file changes. Skip" From 0146277ca9d31a112b94aeea07785165d1d8d603 Mon Sep 17 00:00:00 2001 From: Chahdra Konlack Date: Thu, 9 Nov 2023 17:01:26 -0500 Subject: [PATCH 08/18] default-branch required false --- .github/workflows/python-quality-checks.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python-quality-checks.yml b/.github/workflows/python-quality-checks.yml index 68cfb39..aa2469c 100644 --- a/.github/workflows/python-quality-checks.yml +++ b/.github/workflows/python-quality-checks.yml @@ -18,7 +18,7 @@ on: default: false default-branch: description: "Default branch to compute changed files" - required: true + required: false type: string default: "master" From e771f3b1119cbeb5bd621a5295a5ce1c85bb484e Mon Sep 17 00:00:00 2001 From: Chahdra Konlack Date: Thu, 9 Nov 2023 17:11:02 -0500 Subject: [PATCH 09/18] filter git diff for just added and modified files --- .github/workflows/python-quality-checks.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python-quality-checks.yml b/.github/workflows/python-quality-checks.yml index aa2469c..f1bc9f5 100644 --- a/.github/workflows/python-quality-checks.yml +++ b/.github/workflows/python-quality-checks.yml @@ -97,7 +97,7 @@ jobs: echo ${{ inputs.type-checked-only-changed-files }} if [[ "${{ inputs.type-checked-only-changed-files }}" == "true" ]] ; then git fetch origin - CHANGED_FILES=$(git diff --name-only origin/${{ inputs.default-branch }} origin/${GITHUB_HEAD_REF} | grep '\.py$') + CHANGED_FILES=$(git diff --name-only --diff-filter=AM origin/${{ inputs.default-branch }} origin/${GITHUB_HEAD_REF} | grep '\.py$') NUM_CHANGED_FILES=$(echo "$CHANGED_FILES" | grep -v -e '^\s*$' | wc -l || :) if [[ $NUM_CHANGED_FILES -le 0 ]] ; then echo "No file changes. Skip" From 950ee430047de0cd3cfc0276545f1d80cfd93b3f Mon Sep 17 00:00:00 2001 From: Chahdra Konlack Date: Thu, 9 Nov 2023 17:13:21 -0500 Subject: [PATCH 10/18] remove unnecessary echo --- .github/workflows/python-quality-checks.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/python-quality-checks.yml b/.github/workflows/python-quality-checks.yml index f1bc9f5..6e97aa0 100644 --- a/.github/workflows/python-quality-checks.yml +++ b/.github/workflows/python-quality-checks.yml @@ -94,7 +94,6 @@ jobs: - name: Run pytype working-directory: ${{ inputs.working-directory }} run: | - echo ${{ inputs.type-checked-only-changed-files }} if [[ "${{ inputs.type-checked-only-changed-files }}" == "true" ]] ; then git fetch origin CHANGED_FILES=$(git diff --name-only --diff-filter=AM origin/${{ inputs.default-branch }} origin/${GITHUB_HEAD_REF} | grep '\.py$') From 5e49349b989aa67f94b720b9b0702c408898d055 Mon Sep 17 00:00:00 2001 From: Chahdra Konlack Date: Thu, 9 Nov 2023 17:19:20 -0500 Subject: [PATCH 11/18] Add logic to skip unit test --- .github/workflows/python-quality-checks.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/python-quality-checks.yml b/.github/workflows/python-quality-checks.yml index 6e97aa0..bc43e47 100644 --- a/.github/workflows/python-quality-checks.yml +++ b/.github/workflows/python-quality-checks.yml @@ -21,6 +21,11 @@ on: required: false type: string default: "master" + skip-unit-tests: + description: Skip unit tests + required: false + type: boolean + default: false jobs: pre-checks: @@ -67,6 +72,7 @@ jobs: unit-tests: name: Unit tests + if: ${{ inputs.skip-unit-tests != 'true' }} needs: [ setup ] runs-on: ubuntu-latest steps: From 59c98f4ec9195ee23f99030185f13391b9401432 Mon Sep 17 00:00:00 2001 From: Chahdra Konlack Date: Thu, 9 Nov 2023 17:34:17 -0500 Subject: [PATCH 12/18] remove exit code --- .github/workflows/python-quality-checks.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/python-quality-checks.yml b/.github/workflows/python-quality-checks.yml index bc43e47..c08b751 100644 --- a/.github/workflows/python-quality-checks.yml +++ b/.github/workflows/python-quality-checks.yml @@ -72,7 +72,7 @@ jobs: unit-tests: name: Unit tests - if: ${{ inputs.skip-unit-tests != 'true' }} + if: ${{ inputs.skip-unit-tests == 'false' }} needs: [ setup ] runs-on: ubuntu-latest steps: @@ -106,7 +106,6 @@ jobs: NUM_CHANGED_FILES=$(echo "$CHANGED_FILES" | grep -v -e '^\s*$' | wc -l || :) if [[ $NUM_CHANGED_FILES -le 0 ]] ; then echo "No file changes. Skip" - exit 0 else echo "Running pytype on changed files" echo "$CHANGED_FILES" From 5d796050ef94e6ea2fd8f72be84231897f79faad Mon Sep 17 00:00:00 2001 From: Chahdra Konlack Date: Thu, 9 Nov 2023 17:44:25 -0500 Subject: [PATCH 13/18] debug --- .github/workflows/python-quality-checks.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/python-quality-checks.yml b/.github/workflows/python-quality-checks.yml index c08b751..8aeb042 100644 --- a/.github/workflows/python-quality-checks.yml +++ b/.github/workflows/python-quality-checks.yml @@ -101,9 +101,13 @@ jobs: working-directory: ${{ inputs.working-directory }} run: | if [[ "${{ inputs.type-checked-only-changed-files }}" == "true" ]] ; then + echo "Running pytype on changed files only" git fetch origin - CHANGED_FILES=$(git diff --name-only --diff-filter=AM origin/${{ inputs.default-branch }} origin/${GITHUB_HEAD_REF} | grep '\.py$') + echo "Running pytype 2" + CHANGED_FILES=$(git diff origin/${{ inputs.default-branch }} origin/${GITHUB_HEAD_REF --name-only --diff-filter=AM} | grep '\.py$') + echo "Running pytype 3" NUM_CHANGED_FILES=$(echo "$CHANGED_FILES" | grep -v -e '^\s*$' | wc -l || :) + echo "Running pytype 4" if [[ $NUM_CHANGED_FILES -le 0 ]] ; then echo "No file changes. Skip" else From 0320e4b09269148cb832112882eb9a05b2979118 Mon Sep 17 00:00:00 2001 From: Chahdra Konlack Date: Thu, 9 Nov 2023 17:49:31 -0500 Subject: [PATCH 14/18] typo --- .github/workflows/python-quality-checks.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python-quality-checks.yml b/.github/workflows/python-quality-checks.yml index 8aeb042..e6abae9 100644 --- a/.github/workflows/python-quality-checks.yml +++ b/.github/workflows/python-quality-checks.yml @@ -104,7 +104,7 @@ jobs: echo "Running pytype on changed files only" git fetch origin echo "Running pytype 2" - CHANGED_FILES=$(git diff origin/${{ inputs.default-branch }} origin/${GITHUB_HEAD_REF --name-only --diff-filter=AM} | grep '\.py$') + CHANGED_FILES=$(git diff origin/${{ inputs.default-branch }} origin/${GITHUB_HEAD_REF} --name-only --diff-filter=AM | grep '\.py$') echo "Running pytype 3" NUM_CHANGED_FILES=$(echo "$CHANGED_FILES" | grep -v -e '^\s*$' | wc -l || :) echo "Running pytype 4" From 5505fb55e098eb43a9b69aaf4c841edca22e98b8 Mon Sep 17 00:00:00 2001 From: Chahdra Konlack Date: Thu, 9 Nov 2023 17:54:34 -0500 Subject: [PATCH 15/18] fix git diff --- .github/workflows/python-quality-checks.yml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.github/workflows/python-quality-checks.yml b/.github/workflows/python-quality-checks.yml index e6abae9..0b1279f 100644 --- a/.github/workflows/python-quality-checks.yml +++ b/.github/workflows/python-quality-checks.yml @@ -101,13 +101,9 @@ jobs: working-directory: ${{ inputs.working-directory }} run: | if [[ "${{ inputs.type-checked-only-changed-files }}" == "true" ]] ; then - echo "Running pytype on changed files only" git fetch origin - echo "Running pytype 2" - CHANGED_FILES=$(git diff origin/${{ inputs.default-branch }} origin/${GITHUB_HEAD_REF} --name-only --diff-filter=AM | grep '\.py$') - echo "Running pytype 3" + CHANGED_FILES=$(git diff origin/${{ inputs.default-branch }} origin/${GITHUB_HEAD_REF} --name-only --diff-filter=AM | grep '\.py$' || :) NUM_CHANGED_FILES=$(echo "$CHANGED_FILES" | grep -v -e '^\s*$' | wc -l || :) - echo "Running pytype 4" if [[ $NUM_CHANGED_FILES -le 0 ]] ; then echo "No file changes. Skip" else From 019cedac4a2e606b5441286eecf31fd2688c21d4 Mon Sep 17 00:00:00 2001 From: AlexisGauthierAtKronos Date: Mon, 20 Nov 2023 08:46:52 -0500 Subject: [PATCH 16/18] default: github.event.repository.default_branch --- .github/workflows/python-quality-checks.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python-quality-checks.yml b/.github/workflows/python-quality-checks.yml index 0b1279f..d0ba7d3 100644 --- a/.github/workflows/python-quality-checks.yml +++ b/.github/workflows/python-quality-checks.yml @@ -20,7 +20,7 @@ on: description: "Default branch to compute changed files" required: false type: string - default: "master" + default: ${{ github.event.repository.default_branch }} skip-unit-tests: description: Skip unit tests required: false From beb0bd0ef6131202320dcd229d9b57e71b22a0b0 Mon Sep 17 00:00:00 2001 From: Chahdra Konlack Date: Tue, 2 Jan 2024 11:54:28 -0500 Subject: [PATCH 17/18] Improve workflow python quality checks --- .github/workflows/python-quality-checks.yml | 51 +++++++++++++-------- 1 file changed, 32 insertions(+), 19 deletions(-) diff --git a/.github/workflows/python-quality-checks.yml b/.github/workflows/python-quality-checks.yml index 0b1279f..4e21535 100644 --- a/.github/workflows/python-quality-checks.yml +++ b/.github/workflows/python-quality-checks.yml @@ -11,21 +11,19 @@ on: description: Relative path under $GITHUB_WORKSPACE where the project is located. required: false type: string - type-checked-only-changed-files: + type-checks-only-changed-files: description: Run type check only on changed files required: false type: boolean default: false - default-branch: - description: "Default branch to compute changed files" + checks: + description: | + List of enabled checks separated by comma + default: type_check,code_style,unit_tests + available checks: type_check,code_style,unit_tests required: false type: string - default: "master" - skip-unit-tests: - description: Skip unit tests - required: false - type: boolean - default: false + default: "type_check,code_style,unit_tests" jobs: pre-checks: @@ -72,7 +70,7 @@ jobs: unit-tests: name: Unit tests - if: ${{ inputs.skip-unit-tests == 'false' }} + if: contains(inputs.checks, 'unit_tests') needs: [ setup ] runs-on: ubuntu-latest steps: @@ -89,10 +87,13 @@ jobs: type-check: name: Type check needs: [ setup ] + if: contains(inputs.checks, 'type_check') runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 + with: + fetch-depth: 1000 - name: Setup Python uses: equisoft-actions/setup-python@v1 @@ -100,16 +101,27 @@ jobs: - name: Run pytype working-directory: ${{ inputs.working-directory }} run: | - if [[ "${{ inputs.type-checked-only-changed-files }}" == "true" ]] ; then - git fetch origin - CHANGED_FILES=$(git diff origin/${{ inputs.default-branch }} origin/${GITHUB_HEAD_REF} --name-only --diff-filter=AM | grep '\.py$' || :) - NUM_CHANGED_FILES=$(echo "$CHANGED_FILES" | grep -v -e '^\s*$' | wc -l || :) - if [[ $NUM_CHANGED_FILES -le 0 ]] ; then - echo "No file changes. Skip" + if [[ "${{ inputs.type-checks-only-changed-files }}" == "true" ]] ; then + CURRENT_BRANCH="$(git rev-parse --abbrev-ref HEAD)" + DEFAULT_BRANCH="${{ github.event.repository.default_branch }}" + if [[ "$CURRENT_BRANCH" == "$DEFAULT_BRANCH" ]] ; then + echo "Running pytype on all files" + ${{ needs.setup.outputs.dependencies-manager }} run pytype else - echo "Running pytype on changed files" - echo "$CHANGED_FILES" - ${{ needs.setup.outputs.dependencies-manager }} run pytype $CHANGED_FILES + if [[ -n "${GITHUB_BASE_REF}" ]]; then + DIFF_TARGET="origin/$GITHUB_BASE_REF..." + else + DIFF_TARGET="origin/$DEFAULT_BRANCH..." + fi + CHANGED_FILES=$(git diff $DIFF_TARGET --name-only --diff-filter=AM | grep '\.py$' || :) + NUM_CHANGED_FILES=$(echo "$CHANGED_FILES" | grep -v -e '^\s*$' | wc -l || :) + if [[ $NUM_CHANGED_FILES -le 0 ]] ; then + echo "No file changes. Skip" + else + echo "Running pytype on changed files" + echo "$CHANGED_FILES" + ${{ needs.setup.outputs.dependencies-manager }} run pytype $CHANGED_FILES + fi fi else ${{ needs.setup.outputs.dependencies-manager }} run pytype @@ -119,6 +131,7 @@ jobs: name: Code style needs: [ setup ] runs-on: ubuntu-latest + if: contains(inputs.checks, 'code_style') steps: - name: Checkout uses: actions/checkout@v4 From c81ad90f6788af1b2e5c96594290617148bcb0e2 Mon Sep 17 00:00:00 2001 From: Chahdra Konlack Date: Tue, 2 Jan 2024 12:17:40 -0500 Subject: [PATCH 18/18] Add fetch origin --- .github/workflows/python-quality-checks.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/python-quality-checks.yml b/.github/workflows/python-quality-checks.yml index 87ce4f9..fd173cb 100644 --- a/.github/workflows/python-quality-checks.yml +++ b/.github/workflows/python-quality-checks.yml @@ -107,6 +107,7 @@ jobs: working-directory: ${{ inputs.working-directory }} run: | if [[ "${{ inputs.type-checks-only-changed-files }}" == "true" ]] ; then + git fetch --no-tags --prune --depth=1000 origin CURRENT_BRANCH="$(git rev-parse --abbrev-ref HEAD)" if [[ "$CURRENT_BRANCH" == "${{ inputs.default-branch }}" ]] ; then echo "Running pytype on all files" @@ -117,6 +118,10 @@ jobs: else DIFF_TARGET="origin/${{ inputs.default-branch }}..." fi + + # Allow to fail early if DIFF_TARGET not found on repo + git rev-parse $DIFF_TARGET > /dev/null 2>&1 || { echo "Diff target not found '$DIFF_TARGET'. You probably miss a git fetch step." > /dev/stderr; exit 1; } + CHANGED_FILES=$(git diff $DIFF_TARGET --name-only --diff-filter=AM | grep '\.py$' || :) NUM_CHANGED_FILES=$(echo "$CHANGED_FILES" | grep -v -e '^\s*$' | wc -l || :) if [[ $NUM_CHANGED_FILES -le 0 ]] ; then