@@ -29,29 +29,31 @@ jobs:
2929 with :
3030 use_wrapper : ${{matrix.use_wrapper}}
3131
32- - name : Get Stackql Version
33- id : get-stackql-version
32+ - name : Run Registry List
33+ id : run-registry-list
3434 run : |
35- echo "stackql_version <<EOF" >> $GITHUB_ENV
36- stackql --version >> $GITHUB_ENV
35+ echo "registry_list_output <<EOF" >> $GITHUB_ENV
36+ stackql exec "REGISTRY LIST" >> $GITHUB_ENV
3737 echo "EOF" >> $GITHUB_ENV
3838
39- - name : Validate Stackql Version
39+ - name : Validate Registry List
4040 run : |
41- # Extract only the relevant line containing version information
42- VERSION_OUTPUT=$(echo "${{ env.stackql_version }}" | grep -E 'stackql v[0-9]+\.[0-9]+\.[0-9]+')
43- echo "Version output: $VERSION_OUTPUT"
44-
45- SEMVER_REGEX="v[0-9]+\.[0-9]+\.[0-9]+"
46- PLATFORM_REGEX="(Linux|Darwin|Windows|Homebrew)"
47-
48- if ! [[ "$VERSION_OUTPUT" =~ $SEMVER_REGEX ]]; then
49- echo "Semantic version does not match expected format"
41+ echo "Registry list output:"
42+ echo "$registry_list_output"
43+
44+ # Validate header row: expect | provider | and | version | columns
45+ # Use [[:space:]] instead of \s for macOS bash 3.2 compatibility
46+ HEADER_REGEX='\|[[:space:]]*provider[[:space:]]*\|[[:space:]]*version[[:space:]]*\|'
47+ if ! [[ "$registry_list_output" =~ $HEADER_REGEX ]]; then
48+ echo "Registry list header does not match expected format"
5049 exit 1
5150 fi
52- if ! [[ "$VERSION_OUTPUT" =~ $PLATFORM_REGEX ]]; then
53- echo "Platform information does not match expected formats"
51+
52+ # Validate at least one data row: | <name> | v<major>.<minor>.<patch> |
53+ DATA_ROW_REGEX='\|[[:space:]]*[a-z][a-z0-9_]*[[:space:]]*\|[[:space:]]*v[0-9]+\.[0-9]+\.[0-9]+[[:space:]]*\|'
54+ if ! [[ "$registry_list_output" =~ $DATA_ROW_REGEX ]]; then
55+ echo "Registry list does not contain a valid data row"
5456 exit 1
5557 fi
5658
57- echo "version output validated successfully."
59+ echo "Registry list validated successfully."
0 commit comments