github.com/jcarley/cli@v0.0.0-20180201210820-966d90434c30/release-old (about) 1 #!/bin/bash -e 2 # only run on 64-bit linux 3 # if ! go env | grep GOHOSTOS | grep -q linux; then 4 # echo 'This script must be run on 64-bit linux' 5 # exit 1 6 # fi 7 # if ! go env | grep GOHOSTARCH | grep -q amd64; then 8 # echo 'This script must be run on 64-bit linux' 9 # exit 1 10 # fi 11 12 if [ "${VERSION}" = "" ]; then 13 echo 'You must specify the VERSION environment variable. This is the version you are releasing.' 14 exit 1 15 fi 16 # if [ "${TEST}" = "false" ] && [ "${AWS_ACCESS_KEY_ID}" = "" ]; then 17 # echo 'Missing required AWS_ACCESS_KEY_ID environment variable.' 18 # exit 1 19 # fi 20 # if [ "${TEST}" = "false" ] && [ "${AWS_SECRET_ACCESS_KEY}" = "" ]; then 21 # echo 'Missing required AWS_SECRET_ACCESS_KEY environment variable.' 22 # exit 1 23 # fi 24 if [ "${BUCKET}" = "" ]; then 25 echo 'Missing required BUCKET environment variable.' 26 exit 1 27 fi 28 # 29 # if ! grep -q 'VERSION = "'${VERSION}'"' config/constants.go ; then 30 # echo ''${VERSION}' not found in config/constants. Please update the version in config/constants.go before proceeding' 31 # exit 1 32 # fi 33 34 echo 'Building version '${VERSION}' binaries' 35 go vet $(go list ./... | grep -v /vendor/) 36 go install github.com/daticahealth/cli 37 GOOS=windows GOARCH=386 GOBIN="" go install github.com/daticahealth/cli 38 GOOS=windows GOARCH=amd64 GOBIN="" go install github.com/daticahealth/cli 39 GOOS=linux GOARCH=386 GOBIN="" go install github.com/daticahealth/cli 40 GOOS=linux GOARCH=amd64 GOBIN="" go install github.com/daticahealth/cli 41 GOOS=darwin GOARCH=amd64 GOBIN="" go install github.com/daticahealth/cli 42 43 echo 'Syncing S3 data to the public/ directory' 44 rm -rf public/* 45 aws s3 sync s3://${BUCKET}/catalyze public/ 46 mkdir public/${VERSION} 47 48 echo 'Building version '${VERSION}' JSON configuration files' 49 echo '{ 50 "Version": "'${VERSION}'", 51 "Sha256": "'$(openssl dgst -sha256 -binary ${GOBIN}/windows_386/cli.exe | openssl base64)'" 52 }' > public/windows-386.json 53 echo '{ 54 "Version": "'${VERSION}'", 55 "Sha256": "'$(openssl dgst -sha256 -binary ${GOBIN}/windows_amd64/cli.exe | openssl base64)'" 56 }' > public/windows-amd64.json 57 echo '{ 58 "Version": "'${VERSION}'", 59 "Sha256": "'$(openssl dgst -sha256 -binary ${GOBIN}/linux_386/cli | openssl base64)'" 60 }' > public/linux-386.json 61 echo '{ 62 "Version": "'${VERSION}'", 63 "Sha256": "'$(openssl dgst -sha256 -binary ${GOBIN}/linux_amd64/cli | openssl base64)'" 64 }' > public/linux-amd64.json 65 echo '{ 66 "Version": "'${VERSION}'", 67 "Sha256": "'$(openssl dgst -sha256 -binary ${GOBIN}/cli | openssl base64)'" 68 }' > public/darwin-amd64.json 69 70 echo 'Copying version '${VERSION}' binaries' 71 cp ${GOBIN}/windows_386/cli.exe public/${VERSION}/windows-386 72 cp ${GOBIN}/windows_amd64/cli.exe public/${VERSION}/windows-amd64 73 cp ${GOBIN}/linux_386/cli public/${VERSION}/linux-386 74 cp ${GOBIN}/linux_amd64/cli public/${VERSION}/linux-amd64 75 cp ${GOBIN}/cli public/${VERSION}/darwin-amd64 76 77 gzip public/${VERSION}/windows-386 78 gzip public/${VERSION}/windows-amd64 79 gzip public/${VERSION}/linux-386 80 gzip public/${VERSION}/linux-amd64 81 gzip public/${VERSION}/darwin-amd64 82 83 rm -rf builds 84 mkdir -p builds/datica_${VERSION}_windows_386/ 85 mkdir -p builds/datica_${VERSION}_windows_amd64/ 86 mkdir -p builds/datica_${VERSION}_linux_386/ 87 mkdir -p builds/datica_${VERSION}_linux_amd64/ 88 mkdir -p builds/datica_${VERSION}_darwin_amd64/ 89 90 cp ${GOBIN}/windows_386/cli.exe builds/datica_${VERSION}_windows_386/datica.exe 91 cp ${GOBIN}/windows_amd64/cli.exe builds/datica_${VERSION}_windows_amd64/datica.exe 92 cp ${GOBIN}/linux_386/cli builds/datica_${VERSION}_linux_386/datica 93 cp ${GOBIN}/linux_amd64/cli builds/datica_${VERSION}_linux_amd64/datica 94 cp ${GOBIN}/cli builds/datica_${VERSION}_darwin_amd64/datica 95 96 # generate zip files for windows and darwin 97 cd builds/ 98 zip -r -X datica_${VERSION}_windows_386.zip datica_${VERSION}_windows_386 99 zip -r -X datica_${VERSION}_windows_amd64.zip datica_${VERSION}_windows_amd64 100 zip -r -X datica_${VERSION}_darwin_amd64.zip datica_${VERSION}_darwin_amd64 101 102 # generate tarballs for darwin and linux 103 tar cvzf datica_${VERSION}_linux_386.tar.gz datica_${VERSION}_linux_386 104 tar cvzf datica_${VERSION}_linux_amd64.tar.gz datica_${VERSION}_linux_amd64 105 tar cvzf datica_${VERSION}_darwin_amd64.tar.gz datica_${VERSION}_darwin_amd64 106 107 # generate debs for linux 108 # mkdir -p datica_${VERSION}_linux_386/usr/bin 109 # mv datica_${VERSION}_linux_386/datica datica_${VERSION}_linux_386/usr/bin/ 110 # cp -r ../DEBIAN datica_${VERSION}_linux_386/ 111 # sed -i "s/{{version}}/${VERSION}/g" datica_${VERSION}_linux_386/DEBIAN/control 112 # sed -i "s/{{arch}}/i386/g" datica_${VERSION}_linux_386/DEBIAN/control 113 # LINUX_386_SIZE="$(stat --printf='%s' datica_${VERSION}_linux_386/usr/bin/datica)" 114 # (( LINUX_386_SIZE = LINUX_386_SIZE /1024 )) 115 # sed -i "s/{{size}}/${LINUX_386_SIZE}/g" datica_${VERSION}_linux_386/DEBIAN/control 116 # dpkg-deb -b datica_${VERSION}_linux_386 117 # 118 # mkdir -p datica_${VERSION}_linux_amd64/usr/bin 119 # mv datica_${VERSION}_linux_amd64/datica datica_${VERSION}_linux_amd64/usr/bin/ 120 # cp -r ../DEBIAN datica_${VERSION}_linux_amd64/ 121 # sed -i "s/{{version}}/${VERSION}/g" datica_${VERSION}_linux_amd64/DEBIAN/control 122 # sed -i "s/{{arch}}/amd64/g" datica_${VERSION}_linux_amd64/DEBIAN/control 123 # LINUX_AMD64_SIZE="$(stat --printf='%s' datica_${VERSION}_linux_amd64/usr/bin/datica)" 124 # (( LINUX_AMD64_SIZE = LINUX_AMD64_SIZE /1024 )) 125 # sed -i "s/{{size}}/${LINUX_AMD64_SIZE}/g" datica_${VERSION}_linux_amd64/DEBIAN/control 126 # dpkg-deb -b datica_${VERSION}_linux_amd64 127 128 cd .. 129 130 if [ "${TEST}" = "false" ]; then 131 echo 'Publishing to S3' 132 aws s3 sync public/ s3://${BUCKET}/catalyze --delete --exclude "*.DS_Store" 133 134 echo 'Copying Github assets to S3' 135 aws s3 cp builds s3://${BUCKET}/assets --recursive --exclude "*.DS_Store" 136 else 137 echo 'Test mode enabled, skipping S3 upload and Github release' 138 ls -al 139 ls -al public 140 cat public/*.json 141 ls -al public/${VERSION} 142 ls -al builds 143 fi