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

     1  #!/bin/bash
     2  
     3  set -e -x
     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-amd64 -v | cut -d' ' -f 3 | cut -d'-' -f 1)
    10  
    11  # Instructions for installing iscc:
    12  # https://katastrophos.net/andre/blog/2009/03/16/setting-up-the-inno-setup-compiler-on-debian/
    13  #
    14  # To install ispack-5.2.3.exe, Start socat to expose local xquartz socket on a TCP port
    15  # socat TCP-LISTEN:6000,reuseaddr,fork UNIX-CLIENT:\"$DISPLAY\"
    16  #More--
    17  # Pass the display to container (assuming virtualbox host is available on 192.168.59.3):
    18  # docker run -it -e DISPLAY=192.168.59.3:0 cloudfoundry/cli-ci /bin/bash
    19  
    20  echo "building windows-386 installer"
    21  pushd ${INSTALLERS_DIR}/windows
    22    cp ${OUT_DIR}/cf-windows-386.exe cf.exe
    23  
    24    sed -i -e "s/VERSION/${VERSION}/" ${ROOT_DIR}/ci/scripts/windows-installer-concourse.iss
    25  
    26    # Change the Unix file path to a Windows file path for the Inno Setup script.
    27    sed -i -e "s/CF_SOURCE/$(echo "z:$(pwd)/cf.exe" | sed 's,/,\\\\,g')/" ${ROOT_DIR}/ci/scripts/windows-installer-concourse.iss
    28  
    29    ${ROOT_DIR}/ci/scripts/iscc-concourse ${ROOT_DIR}/ci/scripts/windows-installer-concourse.iss
    30    mv ${ROOT_DIR}/ci/scripts/Output/setup.exe cf_installer.exe
    31    zip ${ROOT_DIR}/release/installer-windows-386.zip cf_installer.exe
    32    rm cf_installer.exe cf.exe
    33  popd
    34  
    35  echo "building windows-amd64 installer"
    36  pushd ${INSTALLERS_DIR}/windows
    37    cp ${OUT_DIR}/cf-windows-amd64.exe cf.exe
    38    ${ROOT_DIR}/ci/scripts/iscc-concourse ${ROOT_DIR}/ci/scripts/windows-installer-concourse.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  popd
    43  
    44  echo "building i386 DEB package"
    45  pushd ${INSTALLERS_DIR}/deb
    46    mkdir -p cf/usr/bin
    47    cp ${OUT_DIR}/cf-linux-386 cf/usr/bin/cf
    48    cp control.template cf/DEBIAN/control
    49    echo "Version: ${VERSION}" >> cf/DEBIAN/control
    50    echo "Architecture: i386" >> cf/DEBIAN/control
    51    fakeroot dpkg --build cf cf-cli_i386.deb
    52    mv cf-cli_i386.deb ${RELEASE_DIR}/
    53    rm -rf cf/usr/bin cf/DEBIAN/control
    54  popd
    55  
    56  echo "building amd64 DEB package"
    57  pushd ${INSTALLERS_DIR}/deb
    58    mkdir -p cf/usr/bin
    59    cp ${OUT_DIR}/cf-linux-amd64 cf/usr/bin/cf
    60    cp control.template cf/DEBIAN/control
    61    echo "Version: ${VERSION}" >> cf/DEBIAN/control
    62    echo "Architecture: amd64" >> cf/DEBIAN/control
    63    fakeroot dpkg --build cf cf-cli_amd64.deb
    64    mv cf-cli_amd64.deb ${RELEASE_DIR}/
    65    rm -rf cf/usr/bin cf/DEBIAN/control
    66  popd
    67  
    68  echo "building i386 RPM package"
    69  pushd ${INSTALLERS_DIR}/rpm
    70    cp ${OUT_DIR}/cf-linux-386 cf
    71    RPM_VERSION=$(echo $VERSION | sed 's/-/_/')
    72    echo "Version: ${RPM_VERSION}" > cf-cli.spec
    73    cat cf-cli.spec.template >> cf-cli.spec
    74    rpmbuild --target i386 --define "_topdir $(pwd)/build" -bb cf-cli.spec
    75    mv build/RPMS/i386/cf-cli*.rpm ${RELEASE_DIR}/cf-cli_i386.rpm
    76    rm -rf build cf cf-cli.spec
    77  popd
    78  
    79  echo "building amd64 RPM package"
    80  pushd ${INSTALLERS_DIR}/rpm
    81    cp ${OUT_DIR}/cf-linux-amd64 cf
    82    RPM_VERSION=$(echo $VERSION | sed 's/-/_/')
    83    echo "Version: ${RPM_VERSION}" > cf-cli.spec
    84    cat cf-cli.spec.template >> cf-cli.spec
    85    rpmbuild --target x86_64 --define "_topdir $(pwd)/build" -bb cf-cli.spec
    86    mv build/RPMS/x86_64/cf-cli*.rpm ${RELEASE_DIR}/cf-cli_amd64.rpm
    87    rm -rf build cf cf-cli.spec
    88  popd
    89  
    90  echo "building OS X installer"
    91  pushd ${INSTALLERS_DIR}/osx
    92    mkdir -p cf-cli/usr/local/bin
    93    mkdir -p cf-cli/usr/local/share/doc/cf-cli
    94    cp ${OUT_DIR}/cf-darwin-amd64 cf-cli/usr/local/bin/cf
    95    cp COPYING cf-cli/usr/local/share/doc/cf-cli
    96    chmod -R go-w cf-cli
    97    ( cd cf-cli && find usr | cpio -o --format=odc | gzip -c > ../Payload )
    98    ls4mkbom cf-cli | sed 's/1000\/1000/0\/80/' > bom_list
    99    mkbom -i bom_list Bom
   100    mv Bom Payload com.cloudfoundry.cli.pkg
   101    xar -c --compression none -f installer-osx-amd64.pkg com.cloudfoundry.cli.pkg Distribution
   102    mv installer-osx-amd64.pkg ${RELEASE_DIR}/
   103    rm -rf cf-cli com.cloudfoundry.cli.pkg/Payload com.cloudfoundry.cli.pkg/Bom bom_list
   104  popd