Skip to content

Commit 4611950

Browse files
authored
Merge pull request #1151 from IntersectMBO/dont-skip-hls-on-missing-base-ref
Don't skip HLS check on missing base-ref
2 parents d761f93 + ea85c7b commit 4611950

File tree

1 file changed

+40
-36
lines changed

1 file changed

+40
-36
lines changed

.github/workflows/hls.yml

Lines changed: 40 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -24,46 +24,50 @@ jobs:
2424
- name: Check if changes were trivial
2525
id: check_trivial_changes
2626
run: |
27-
git fetch origin ${{ github.base_ref }} --unshallow
28-
base_ref=origin/${{ github.base_ref }}
29-
head_ref=HEAD
30-
changed_files=$(git diff-tree --name-status -r "$base_ref".."$head_ref" -- | cut -f2 -d$'\t')
31-
# Flag to check whether we do the rest of checks
32-
exception=true
33-
34-
for file in $changed_files; do
35-
# If changes were to a markdown file we don't mind
36-
if [[ $file == *.md ]]; then
37-
echo "$file: is markdown, so it doesn't matter (trivial change)"
38-
continue
39-
fi
40-
41-
# If changes were to a .cabal file, we ensure only the version changed
42-
if [[ $file == *.cabal ]]; then
43-
# If file doesn't exist it means it was moved or removed
44-
if [ ! -f "$file" ]; then
45-
echo "$file: was moved or removed and is a cabal file (non-trivial change)"
46-
exception=false
47-
break
27+
if [ -z "${{ github.base_ref }}" ]; then
28+
exception=false
29+
else
30+
git fetch origin ${{ github.base_ref }} --unshallow
31+
base_ref=origin/${{ github.base_ref }}
32+
head_ref=HEAD
33+
changed_files=$(git diff-tree --name-status -r "$base_ref".."$head_ref" -- | cut -f2 -d$'\t')
34+
# Flag to check whether we do the rest of checks
35+
exception=true
36+
37+
for file in $changed_files; do
38+
# If changes were to a markdown file we don't mind
39+
if [[ $file == *.md ]]; then
40+
echo "$file: is markdown, so it doesn't matter (trivial change)"
41+
continue
4842
fi
49-
50-
# We ensure the only change was to the version field
51-
diff_version=$(git diff "$base_ref".."$head_ref" -- "$file" | perl -ne 'print if /^-(?!version:)/' | wc -l)
52-
diff_no_version=$(git diff "$base_ref".."$head_ref" -- "$file" | perl -ne 'print if /^\+(?!version:)/' | wc -l)
53-
54-
if [ "$diff_version" -gt 1 ] || [ "$diff_no_version" -gt 1 ]; then
55-
echo "$file: was modified beyond the version tag (non-trivial change)"
43+
44+
# If changes were to a .cabal file, we ensure only the version changed
45+
if [[ $file == *.cabal ]]; then
46+
# If file doesn't exist it means it was moved or removed
47+
if [ ! -f "$file" ]; then
48+
echo "$file: was moved or removed and is a cabal file (non-trivial change)"
49+
exception=false
50+
break
51+
fi
52+
53+
# We ensure the only change was to the version field
54+
diff_version=$(git diff "$base_ref".."$head_ref" -- "$file" | perl -ne 'print if /^-(?!version:)/' | wc -l)
55+
diff_no_version=$(git diff "$base_ref".."$head_ref" -- "$file" | perl -ne 'print if /^\+(?!version:)/' | wc -l)
56+
57+
if [ "$diff_version" -gt 1 ] || [ "$diff_no_version" -gt 1 ]; then
58+
echo "$file: was modified beyond the version tag (non-trivial change)"
59+
exception=false
60+
break
61+
fi
62+
echo "In $file, at most the version field was modified"
63+
else
64+
# If other types of files were changed, do not skip the checks
65+
echo "$file: was changed and is not a markdown nor a cabal file (non-trivial change)"
5666
exception=false
5767
break
5868
fi
59-
echo "In $file, at most the version field was modified"
60-
else
61-
# If other types of files were changed, do not skip the checks
62-
echo "$file: was changed and is not a markdown nor a cabal file (non-trivial change)"
63-
exception=false
64-
break
65-
fi
66-
done
69+
done
70+
fi
6771

6872
if $exception; then
6973
echo "CHECK_HLS_WORKS=0" >> "$GITHUB_OUTPUT"

0 commit comments

Comments
 (0)