github.com/jasonkeene/cli@v6.14.1-0.20160816203908-ca5715166dfb+incompatible/ci/cli/tasks/create-installers.yml (about) 1 --- 2 platform: linux 3 image: docker:///cloudfoundry/cli-ci 4 5 inputs: 6 - name: cf-cli-binaries 7 - name: cli-private 8 - name: cli 9 10 outputs: 11 - name: installers 12 13 run: 14 path: bash 15 args: 16 - -c 17 - | 18 set -ex 19 set -o pipefail 20 21 root=$PWD 22 23 pushd cf-cli-binaries 24 tar xvf cf-cli-binaries.tgz 25 popd 26 27 VERSION=$(cat cli/VERSION) 28 RPM_VERSION=$(echo $VERSION | sed 's/-/_/') 29 30 mkdir archives 31 32 echo "Building 32-bit Debian package" 33 ( 34 SIZE="$(BLOCKSIZE=1000 du $root/cf-cli-binaries/cf-cli_linux_i686 | cut -f 1)" 35 36 pushd cli/installers/deb 37 mkdir -p cf/usr/bin 38 39 cp $root/cf-cli-binaries/cf-cli_linux_i686 cf/usr/bin/cf 40 41 cp control.template cf/DEBIAN/control 42 echo "Installed-Size: ${SIZE}" >> cf/DEBIAN/control 43 echo "Version: ${VERSION}" >> cf/DEBIAN/control 44 echo "Architecture: i386" >> cf/DEBIAN/control 45 46 fakeroot dpkg --build cf cf-cli-installer_i686.deb 47 mv cf-cli-installer_i686.deb $root/archives 48 rm -rf cf/usr/bin cf/DEBIAN/control 49 popd 50 ) 51 52 echo "Building 64-bit Debian package" 53 ( 54 SIZE="$(BLOCKSIZE=1000 du $root/cf-cli-binaries/cf-cli_linux_x86-64 | cut -f 1)" 55 56 pushd cli/installers/deb 57 mkdir -p cf/usr/bin 58 59 cp $root/cf-cli-binaries/cf-cli_linux_x86-64 cf/usr/bin/cf 60 61 cp control.template cf/DEBIAN/control 62 echo "Installed-Size: ${SIZE}" >> cf/DEBIAN/control 63 echo "Version: ${VERSION}" >> cf/DEBIAN/control 64 echo "Architecture: amd64" >> cf/DEBIAN/control 65 66 fakeroot dpkg --build cf cf-cli-installer_x86-64.deb 67 mv cf-cli-installer_x86-64.deb $root/archives 68 rm -rf cf/usr/bin cf/DEBIAN/control 69 popd 70 ) 71 72 echo "Building 32-bit RedHat package" 73 ( 74 pushd cli/installers/rpm 75 cp $root/cf-cli-binaries/cf-cli_linux_i686 cf 76 echo "Version: ${RPM_VERSION}" > cf-cli.spec 77 cat cf-cli.spec.template >> cf-cli.spec 78 rpmbuild --target i386 --define "_topdir $(pwd)/build" -bb cf-cli.spec 79 mv build/RPMS/i386/cf-cli*.rpm $root/archives/cf-cli-installer_i686.rpm 80 rm -rf build cf cf-cli.spec 81 popd 82 ) 83 84 echo "Building 64-bit RedHat package" 85 ( 86 pushd cli/installers/rpm 87 cp $root/cf-cli-binaries/cf-cli_linux_x86-64 cf 88 echo "Version: ${RPM_VERSION}" > cf-cli.spec 89 cat cf-cli.spec.template >> cf-cli.spec 90 rpmbuild --target x86_64 --define "_topdir $(pwd)/build" -bb cf-cli.spec 91 mv build/RPMS/x86_64/cf-cli*.rpm $root/archives/cf-cli-installer_x86-64.rpm 92 rm -rf build cf cf-cli.spec 93 popd 94 ) 95 96 echo "Building OS X installer" 97 ( 98 SIZE="$(BLOCKSIZE=1000 du $root/cf-cli-binaries/cf-cli_osx | cut -f 1)" 99 100 pushd cli/installers/osx 101 sed -i -e "s/VERSION/${VERSION}/g" Distribution 102 sed -i -e "s/SIZE/${SIZE}/g" Distribution 103 mkdir -p cf-cli/usr/local/bin 104 mkdir -p cf-cli/usr/local/share/doc/cf-cli 105 cp $root/cf-cli-binaries/cf-cli_osx cf-cli/usr/local/bin/cf 106 cp COPYING cf-cli/usr/local/share/doc/cf-cli 107 chmod -R go-w cf-cli 108 pushd cf-cli 109 find usr | cpio -o --format=odc | gzip -c > ../Payload 110 popd 111 ls4mkbom cf-cli | sed 's/1000\/1000/0\/80/' > bom_list 112 mkbom -i bom_list Bom 113 mv Bom Payload com.cloudfoundry.cli.pkg 114 xar -c --compression none -f cf-cli-installer_osx.pkg com.cloudfoundry.cli.pkg Distribution 115 116 f=cf-cli-installer_osx.pkg 117 xar --sign -f $f \ 118 --digestinfo-to-sign digestinfo.dat \ 119 --sig-size `cat $root/cli-private/certs/siglen.txt` \ 120 --cert-loc $root/cli-private/certs/Developer\ ID\ Installer_\ Cloudfoundry.org\ Foundation\,\ Inc\ \(ZS92ETKJX7\).cer \ 121 --cert-loc $root/cli-private/certs/Developer\ ID\ Certification\ Authority.cer 122 123 openssl rsautl -sign \ 124 -inkey $root/cli-private/certs/developer-id-installer-private-key.pem \ 125 -in digestinfo.dat \ 126 -out signature.dat 127 xar --inject-sig signature.dat -f $f 128 129 mv cf-cli-installer_osx.pkg $root/archives/cf-cli-installer_osx.pkg 130 rm -rf cf-cli com.cloudfoundry.cli.pkg/Payload com.cloudfoundry.cli.pkg/Bom bom_list 131 popd 132 ) 133 134 echo "Packaging Installers" 135 ( 136 cd installers 137 tar cvzf cf-cli-installers.tgz -C $root/archives . 138 )