diff --git a/.forgejo/workflows/ci.yml b/.forgejo/workflows/ci.yml index 6241906..064c29c 100644 --- a/.forgejo/workflows/ci.yml +++ b/.forgejo/workflows/ci.yml @@ -23,21 +23,23 @@ jobs: set -euo pipefail git fetch --quiet --depth=1 origin "${GITHUB_BASE_REF:-}" || true - diff_range="" - if [ -n "${GITHUB_BASE_REF:-}" ]; then + files="" + if [ "${GITHUB_EVENT_NAME:-}" = "pull_request" ] && [ -n "${GITHUB_BASE_REF:-}" ]; then base_ref="origin/${GITHUB_BASE_REF}" if git rev-parse --verify "$base_ref" >/dev/null 2>&1; then - diff_range="$(git merge-base "$base_ref" HEAD)..HEAD" + files="$(git diff --name-only "$base_ref"...HEAD)" + else + files="$(git diff --name-only HEAD^..HEAD || true)" fi else - if git rev-parse --verify HEAD^ >/dev/null 2>&1; then - diff_range="HEAD^..HEAD" + if git rev-parse --verify "${GITHUB_SHA}^" >/dev/null 2>&1; then + files="$(git diff --name-only "${GITHUB_SHA}^" "${GITHUB_SHA}")" + else + files="$(git diff --name-only HEAD^..HEAD || true)" fi fi - if [ -n "$diff_range" ]; then - files="$(git diff --name-only "$diff_range")" - else + if [ -z "$files" ]; then files="$(git ls-files)" fi