12
12
# - Diff the two diffs to see if new issues were introduced
13
13
set -euo pipefail
14
14
15
- minimum=" v$( curl -s https://semgrep.dev/api/check-version | jq -r ' .versions.minimum' ) "
15
+ version_url=" https://semgrep.dev/api/check-version"
16
+ min_version=$( curl -s " $version_url " | jq -r ' .versions.minimum' )
17
+ if [[ -z " $min_version " ]]; then
18
+ echo " Failed to obtain minimum supported version from $version_url " >&2
19
+ exit 1
20
+ fi
21
+
22
+ minimum=" v${min_version} "
16
23
tags=$( git log --simplify-by-decoration --pretty=format:%D " ${minimum} ^!" origin/main | grep -o ' tag: [^,)]\+' | sed ' s/^tag: //' | sort -n)
17
24
18
25
checked=(" dummy" )
@@ -27,22 +34,27 @@ for tag in $tags; do
27
34
28
35
set +e # do our own error handling for a bit
29
36
echo " Checking backward compatibility of semgrep_output_v1.atd against past version $tag "
30
- git difftool --trust-exit-code -x ' atddiff --no-locations --backward' -y " $tag " " origin/main" semgrep_output_v1.atd > before.txt
37
+ # I'm getting an exit code 128 when atddiff returns 3 (as of git 2.43.0),
38
+ # contrary to what 'git difftool --help' promises for '--trust-exit-code'.
39
+ # I'd report the bug if it was easier. -- Martin
40
+ git difftool --trust-exit-code -x ' atddiff --no-locations --backward' -y \
41
+ " $tag " " origin/main" -- semgrep_output_v1.atd > before.txt
31
42
ret=$?
32
43
if [ " $ret " -ge 1 ] && [ " $ret " -le 2 ]; then
33
- echo " ERROR: atddiff had an error: $? "
44
+ echo " ERROR: atddiff had an error: $ret "
34
45
cat before.txt
35
46
exit 1
36
47
fi
37
- git difftool --trust-exit-code -x ' atddiff --no-locations --backward' -y " $tag " " HEAD" semgrep_output_v1.atd > after.txt
48
+ git difftool --trust-exit-code -x ' atddiff --no-locations --backward' -y \
49
+ " $tag " " HEAD" -- semgrep_output_v1.atd > after.txt
38
50
ret=$?
39
51
if [ " $ret " -ge 1 ] && [ " $ret " -le 2 ]; then
40
- echo " ERROR: atddiff had an error: $? "
52
+ echo " ERROR: atddiff had an error: $ret "
41
53
cat after.txt
42
54
exit 1
43
55
fi
44
56
45
- diff -u <( cat before.txt) <( cat after.txt)
57
+ diff -u before.txt after.txt
46
58
if [ " $? " -ne 0 ]; then
47
59
echo " ERROR: semgrep_output_v1.atd is not backward compatible with $tag "
48
60
errors=$(( errors + 1 ))
0 commit comments