github.com/rakutentech/cli@v6.12.5-0.20151006231303-24468b65536e+incompatible/ci/scripts/build-installers-gocd (about)

     1  #!/bin/bash
     2  
     3  set -e
     4  
     5  ROOT_DIR=$(pwd)
     6  OUT_DIR=${ROOT_DIR}/out
     7  RELEASE_DIR=${ROOT_DIR}/release
     8  INSTALLERS_DIR=${ROOT_DIR}/installers
     9  VERSION=$(${OUT_DIR}/cf-linux-386 -v | cut -d' ' -f 3 | cut -d'-' -f 1)
    10  
    11  
    12  # Instructions for installing iscc:
    13  # https://katastrophos.net/andre/blog/2009/03/16/setting-up-the-inno-setup-compiler-on-debian/
    14  #
    15  # forward X11 ports when installing 'Inno Setup' on the linux vm where the gocd agent runs 
    16  #   $ ssh -X -i id_rsa.pem ubuntu@x.x.x.x' 
    17  
    18  echo "building windows-386 installer"
    19  (
    20      cd ${INSTALLERS_DIR}/windows
    21      cp ${OUT_DIR}/cf-windows-386.exe cf.exe
    22  
    23      sed -i -e "s/VERSION/${VERSION}/" ${ROOT_DIR}/ci/scripts/windows-installer.iss
    24  
    25      # Change the Unix file path to a Windows file path for the Inno Setup script.
    26      sed -i -e "s/CF_SOURCE/$(echo "z:$(pwd)/cf.exe" | sed 's,/,\\\\,g')/" ${ROOT_DIR}/ci/scripts/windows-installer.iss
    27  
    28      ${ROOT_DIR}/ci/scripts/iscc ${ROOT_DIR}/ci/scripts/windows-installer.iss
    29      mv ${ROOT_DIR}/ci/scripts/Output/setup.exe cf_installer.exe
    30      zip ${ROOT_DIR}/release/installer-windows-386.zip cf_installer.exe
    31      rm cf_installer.exe cf.exe
    32  )
    33  
    34  echo "building windows-amd64 installer"
    35  (
    36      cd ${INSTALLERS_DIR}/windows
    37      cp ${OUT_DIR}/cf-windows-amd64.exe cf.exe
    38      ${ROOT_DIR}/ci/scripts/iscc ${ROOT_DIR}/ci/scripts/windows-installer.iss
    39      mv ${ROOT_DIR}/ci/scripts/Output/setup.exe cf_installer.exe
    40      zip ${RELEASE_DIR}/installer-windows-amd64.zip cf_installer.exe
    41      rm cf_installer.exe cf.exe
    42  )
    43  
    44  echo "building i386 DEB package"
    45  (
    46      cd ${INSTALLERS_DIR}/deb
    47      mkdir -p cf/usr/bin
    48      cp ${OUT_DIR}/cf-linux-386 cf/usr/bin/cf
    49      cp control.template cf/DEBIAN/control
    50      echo "Version: ${VERSION}" >> cf/DEBIAN/control
    51      echo "Architecture: i386" >> cf/DEBIAN/control
    52      fakeroot dpkg --build cf cf-cli_i386.deb
    53      mv cf-cli_i386.deb ${RELEASE_DIR}/
    54      rm -rf cf/usr/bin cf/DEBIAN/control
    55  )
    56  
    57  echo "building amd64 DEB package"
    58  (
    59      cd ${INSTALLERS_DIR}/deb
    60      mkdir -p cf/usr/bin
    61      cp ${OUT_DIR}/cf-linux-amd64 cf/usr/bin/cf
    62      cp control.template cf/DEBIAN/control
    63      echo "Version: ${VERSION}" >> cf/DEBIAN/control
    64      echo "Architecture: amd64" >> cf/DEBIAN/control
    65      fakeroot dpkg --build cf cf-cli_amd64.deb
    66      mv cf-cli_amd64.deb ${RELEASE_DIR}/
    67      rm -rf cf/usr/bin cf/DEBIAN/control
    68  )
    69  
    70  echo "building i386 RPM package"
    71  (
    72      cd ${INSTALLERS_DIR}/rpm
    73      cp ${OUT_DIR}/cf-linux-386 cf
    74      RPM_VERSION=$(echo $VERSION | sed 's/-/_/')
    75      echo "Version: ${RPM_VERSION}" > cf-cli.spec
    76      cat cf-cli.spec.template >> cf-cli.spec
    77      rpmbuild --target i386 --define "_topdir $(pwd)/build" -bb cf-cli.spec
    78      mv build/RPMS/i386/cf-cli*.rpm ${RELEASE_DIR}/cf-cli_i386.rpm
    79      rm -rf build cf cf-cli.spec
    80  )
    81  
    82  echo "building amd64 RPM package"
    83  (
    84      cd ${INSTALLERS_DIR}/rpm
    85      cp ${OUT_DIR}/cf-linux-amd64 cf
    86      RPM_VERSION=$(echo $VERSION | sed 's/-/_/')
    87      echo "Version: ${RPM_VERSION}" > cf-cli.spec
    88      cat cf-cli.spec.template >> cf-cli.spec
    89      rpmbuild --target x86_64 --define "_topdir $(pwd)/build" -bb cf-cli.spec
    90      mv build/RPMS/x86_64/cf-cli*.rpm ${RELEASE_DIR}/cf-cli_amd64.rpm
    91      rm -rf build cf cf-cli.spec
    92  )
    93  
    94  echo "building OS X installer"
    95  (
    96      cd ${INSTALLERS_DIR}/osx
    97      mkdir -p cf-cli/usr/local/bin
    98      mkdir -p cf-cli/usr/local/share/doc/cf-cli
    99      cp ${OUT_DIR}/cf-darwin-amd64 cf-cli/usr/local/bin/cf
   100      cp COPYING cf-cli/usr/local/share/doc/cf-cli
   101      chmod -R go-w cf-cli
   102      ( cd cf-cli && find usr | cpio -o --format=odc | gzip -c > ../Payload )
   103      ls4mkbom cf-cli | sed 's/1000\/1000/0\/80/' > bom_list
   104      mkbom -i bom_list Bom
   105      mv Bom Payload com.cloudfoundry.cli.pkg
   106      xar -c --compression none -f installer-osx-amd64.pkg com.cloudfoundry.cli.pkg Distribution
   107      mv installer-osx-amd64.pkg ${RELEASE_DIR}/
   108      rm -rf cf-cli com.cloudfoundry.cli.pkg/Payload com.cloudfoundry.cli.pkg/Bom bom_list
   109  )