github.com/micro/go-micro/v2@v2.9.1/.github/workflows/scripts/build-all-examples.sh (about) 1 #!/bin/bash 2 # set -x 3 4 function build_binary { 5 echo building $1 6 pushd $1 7 go build -o _main 8 local ret=$? 9 if [ $ret -gt 0 ]; then 10 failed=1 11 failed_arr+=($1) 12 fi 13 popd 14 } 15 16 function is_main { 17 grep "package main" -l -dskip $1/*.go > /dev/null 2>&1 18 } 19 20 21 function check_dir { 22 is_main $1 23 local ret=$? 24 if [ $ret == 0 ]; then 25 build_binary $1 $2 26 fi 27 for filename in $1/*; do 28 if [ -d $filename ]; then 29 check_dir $filename $2 30 fi 31 done 32 } 33 failed_arr=() 34 failed=0 35 go mod edit -replace github.com/micro/go-micro/v2=github.com/micro/go-micro/v2@$1 36 check_dir . $1 37 if [ $failed -gt 0 ]; then 38 echo Some builds failed 39 printf '%s\n' "${failed_arr[@]}" 40 fi 41 exit $failed