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