diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fe56a79..a0c2714 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,11 +18,22 @@ jobs: - name: Checkout code uses: actions/checkout@v3 + - name: Determine Previous Commit + id: get_previous_commit + run: | + if [ -z "${{ github.event.before }}" ] || [ "${{ github.event.before }}" == "0000000000000000000000000000000000000000" ]; then + echo "No previous commit found. Assuming first commit." + echo "PREV_COMMIT=$(git rev-list --max-parents=0 HEAD)" >> $GITHUB_ENV + else + echo "Using previous commit from GitHub event." + echo "PREV_COMMIT=${{ github.event.before }}" >> $GITHUB_ENV + fi + - name: Check if Python files changed id: check_files run: | - git fetch origin ${{ github.event.before }} - if git diff --name-only ${{ github.event.before }} ${{ github.sha }} | grep -q '\.py$'; then + git fetch origin $PREV_COMMIT + if git diff --name-only $PREV_COMMIT ${{ github.sha }} | grep -q '\.py$'; then echo "Python files changed" echo "run_tests=true" >> $GITHUB_ENV echo "::set-output name=run_tests::true" @@ -78,7 +89,7 @@ jobs: deploy: needs: test - if: success() || needs.check_python_changes.outputs.run_tests == 'false' # Deploy if tests pass OR no Python changes + if: success() || needs.check_python_changes.outputs.run_tests == 'false' runs-on: ubuntu-latest strategy: