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