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 )