pkg.re/essentialkaos/ek.10@v12.41.0+incompatible/.scripts/nix.sh (about) 1 #! /bin/bash 2 3 ######################################################################################## 4 5 # Main func 6 # 7 # *: All arguments passed to script 8 # 9 main() { 10 local version="$1" 11 local dir="${2:-.}" 12 13 if [[ ! -d $dir ]] ; then 14 exit 1 15 fi 16 17 makeLink "$version" 18 testPackages "$dir" 19 20 exit 0 21 } 22 23 # Create symlink to directory with import name (pkg.re/essentialkaos/ek) 24 # 25 # 1: Major version (String) 26 # 27 # Code: No 28 # Echo: No 29 makeLink() { 30 local version="$1" 31 local pkg_dir="pkg.re/essentialkaos/ek.v${version}" 32 33 # TravicCI download last stable version of ek, but it not ok 34 # remove downloaded version for linking with current version for test 35 if [[ -e $GOPATH/src/${pkg_dir} ]] ; then 36 echo "Directory ${pkg_dir} removed" 37 rm -rf $GOPATH/src/${pkg_dir} 38 fi 39 40 mkdir -p $GOPATH/src/pkg.re/essentialkaos 41 42 echo -e "Created link $GOPATH/src/${pkg_dir} → $GOPATH/src/github.com/essentialkaos/ek\n" 43 44 ln -sf $GOPATH/src/github.com/essentialkaos/ek $GOPATH/src/${pkg_dir} 45 } 46 47 # Test all packages from lis and save coverage info into the file 48 # 49 # 1: Dir with sources (String) 50 # 51 # Code: No 52 # Echo: No 53 testPackages() { 54 local dir="$1" 55 56 # Remove coverage output if exist 57 rm -f coverage.tmp coverage.txt &> /dev/null 58 59 # Fix coverage header 60 echo "mode: count" > coverage.txt 61 62 if [[ -z "$EK_TEST_PORT" ]] ; then 63 export EK_TEST_PORT=8080 64 fi 65 66 local has_errors os_flag cover_enabled package_dir 67 local package_list=".scripts/packages.list" 68 69 while read package ; do 70 71 read os_flag cover_enabled package_dir <<< "$package" 72 73 if ! isOSFit "$os_flag" ; then 74 continue 75 fi 76 77 if [[ "$cover_enabled" == "!" ]] ; then 78 continue 79 fi 80 81 if [[ "$cover_enabled" == "-" ]] ; then 82 go test $dir/$package_dir -covermode=count -tags=unit 83 84 if [[ $? -ne 0 ]] ; then 85 has_errors=true 86 fi 87 else 88 go test -covermode=count -tags=unit -coverprofile=coverage.tmp $dir/$package_dir 89 90 if [[ $? -ne 0 ]] ; then 91 has_errors=true 92 fi 93 94 if [[ -f coverage.tmp ]] ; then 95 egrep -v '^mode:' coverage.tmp >> coverage.txt 96 rm -f coverage.tmp 97 fi 98 fi 99 100 done < <(awk 1 $package_list) 101 102 if [[ $has_errors ]] ; then 103 exit 1 104 fi 105 } 106 107 # Check if tests works on current runner OS 108 # 109 # 1: OS flag (String) 110 # 111 # Code: Yes 112 # Echo: No 113 isOSFit() { 114 local os_flag="$1" 115 116 if [[ "$os_flag" == "*" ]] ; then 117 return 0 118 fi 119 120 if [[ "$os_flag" == "L" && "$RUNNER_OS" == "Linux" ]] ; then 121 return 0 122 fi 123 124 if [[ "$os_flag" == "M" && "$RUNNER_OS" == "macOS" ]] ; then 125 return 0 126 fi 127 128 return 1 129 } 130 131 ######################################################################################## 132 133 main "$@"