github.com/dcarley/cf-cli@v6.24.1-0.20170220111324-4225ff346898+incompatible/ci/cli/tasks/create-installers.yml (about)

     1  ---
     2  platform: linux
     3  image: docker:///cloudfoundry/cli-ci
     4  
     5  inputs:
     6  - name: cli-ci
     7  - name: extracted-binaries
     8  
     9  outputs:
    10  - name: packaged
    11  
    12  run:
    13    path: bash
    14    args:
    15    - -c
    16    - |
    17      set -ex
    18      set -o pipefail
    19  
    20      root=$PWD
    21  
    22      cat<< EOF >~/.rpmmacros
    23      CF CLI Team <cf-cli-eng@pivotal.io>
    24      EOF
    25  
    26      VERSION=$(cat cli-ci/ci/VERSION)
    27      RPM_VERSION=$(echo $VERSION | sed 's/-/_/')
    28  
    29      echo "Building 32-bit Debian package"
    30      (
    31          SIZE="$(BLOCKSIZE=1000 du $root/extracted-binaries/cf-cli_linux_i686 | cut -f 1)"
    32  
    33          pushd cli-ci/ci/installers/deb
    34            mkdir -p cf/usr/bin cf/usr/share/doc/cf-cli/ cf/DEBIAN cf/usr/share/bash-completion/completions
    35  
    36            cp copyright_preamble cf/DEBIAN/copyright
    37            sed 's/^$/ ./' ../../../LICENSE >> cf/DEBIAN/copyright
    38            cat copyright_comment_header >> cf/DEBIAN/copyright
    39            sed 's/^$/ ./' ../../license/3RD-PARTY-LICENSES >> cf/DEBIAN/copyright
    40  
    41            cp cf/DEBIAN/copyright cf/usr/share/doc/cf-cli/copyright
    42  
    43            cp ../../license/NOTICE cf/usr/share/doc/cf-cli
    44            cp ../../license/LICENSE-WITH-3RD-PARTY-LICENSES cf/usr/share/doc/cf-cli/LICENSE
    45  
    46            cp control.template cf/DEBIAN/control
    47            echo "Installed-Size: ${SIZE}" >> cf/DEBIAN/control
    48            echo "Version: ${VERSION}" >> cf/DEBIAN/control
    49            echo "Architecture: i386" >> cf/DEBIAN/control
    50  
    51            cp ../completion/cf cf/usr/share/bash-completion/completions/cf
    52  
    53            cp $root/extracted-binaries/cf-cli_linux_i686 cf/usr/bin/cf
    54  
    55            fakeroot dpkg --build cf cf-cli-installer_i686.deb
    56            mv cf-cli-installer_i686.deb $root/packaged
    57            rm -rf cf
    58          popd
    59      )
    60  
    61      echo "Building 64-bit Debian package"
    62      (
    63          SIZE="$(BLOCKSIZE=1000 du $root/extracted-binaries/cf-cli_linux_x86-64 | cut -f 1)"
    64  
    65          pushd cli-ci/ci/installers/deb
    66            mkdir -p cf/usr/bin cf/usr/share/doc/cf-cli/ cf/DEBIAN cf/usr/share/bash-completion/completions
    67  
    68            cp copyright_preamble cf/DEBIAN/copyright
    69            sed 's/^$/ ./' ../../../LICENSE >> cf/DEBIAN/copyright
    70            cat copyright_comment_header >> cf/DEBIAN/copyright
    71            sed 's/^$/ ./' ../../license/3RD-PARTY-LICENSES >> cf/DEBIAN/copyright
    72  
    73            cp cf/DEBIAN/copyright cf/usr/share/doc/cf-cli/copyright
    74  
    75            cp ../../license/NOTICE cf/usr/share/doc/cf-cli
    76            cp ../../license/LICENSE-WITH-3RD-PARTY-LICENSES cf/usr/share/doc/cf-cli/LICENSE
    77  
    78            cp control.template cf/DEBIAN/control
    79            echo "Installed-Size: ${SIZE}" >> cf/DEBIAN/control
    80            echo "Version: ${VERSION}" >> cf/DEBIAN/control
    81            echo "Architecture: amd64" >> cf/DEBIAN/control
    82  
    83            cp ../completion/cf cf/usr/share/bash-completion/completions/cf
    84  
    85            cp $root/extracted-binaries/cf-cli_linux_x86-64 cf/usr/bin/cf
    86  
    87            fakeroot dpkg --build cf cf-cli-installer_x86-64.deb
    88            mv cf-cli-installer_x86-64.deb $root/packaged
    89          popd
    90      )
    91  
    92      echo "Building 32-bit RedHat package"
    93      (
    94        pushd cli-ci/ci/installers/rpm
    95          cp $root/extracted-binaries/cf-cli_linux_i686 cf
    96          cp ../../license/NOTICE .
    97          cp ../../license/LICENSE-WITH-3RD-PARTY-LICENSES LICENSE
    98          echo "Version: ${RPM_VERSION}" > cf-cli.spec
    99          cat cf-cli.spec.template >> cf-cli.spec
   100          rpmbuild --target i386 --define "_topdir $(pwd)/build" -bb cf-cli.spec
   101          mv build/RPMS/i386/cf-cli*.rpm $root/packaged/cf-cli-installer_i686.rpm
   102        popd
   103      )
   104  
   105      echo "Building 64-bit RedHat package"
   106      (
   107        pushd cli-ci/ci/installers/rpm
   108          cp $root/extracted-binaries/cf-cli_linux_x86-64 cf
   109          cp ../../license/NOTICE .
   110          cp ../../license/LICENSE-WITH-3RD-PARTY-LICENSES LICENSE
   111          echo "Version: ${RPM_VERSION}" > cf-cli.spec
   112          cat cf-cli.spec.template >> cf-cli.spec
   113          rpmbuild --target x86_64 --define "_topdir $(pwd)/build" -bb cf-cli.spec
   114          mv build/RPMS/x86_64/cf-cli*.rpm $root/packaged/cf-cli-installer_x86-64.rpm
   115        popd
   116      )
   117  
   118      echo "Building OS X installer"
   119      (
   120        SIZE="$(BLOCKSIZE=1000 du $root/extracted-binaries/cf-cli_osx | cut -f 1)"
   121  
   122        pushd cli-ci/ci/installers/osx
   123          sed -i -e "s/VERSION/${VERSION}/g" Distribution
   124          sed -i -e "s/SIZE/${SIZE}/g" Distribution
   125          mkdir -p cf-cli/usr/local/bin cf-cli/usr/local/share/doc/cf-cli
   126  
   127          cp $root/extracted-binaries/cf-cli_osx cf-cli/usr/local/bin/cf
   128          cp ../../license/NOTICE cf-cli/usr/local/share/doc/cf-cli
   129          cp ../../license/LICENSE-WITH-3RD-PARTY-LICENSES cf-cli/usr/local/share/doc/cf-cli/LICENSE
   130          chmod -R go-w cf-cli
   131          pushd cf-cli
   132            find usr | cpio -o --format=odc | gzip -c > ../Payload
   133          popd
   134          ls4mkbom cf-cli | sed 's/1000\/1000/0\/80/' > bom_list
   135          mkbom -i bom_list Bom
   136          mv Bom Payload com.cloudfoundry.cli.pkg
   137          xar -c --compression none -f cf-cli-installer_osx.pkg com.cloudfoundry.cli.pkg Distribution
   138          mv cf-cli-installer_osx.pkg $root/packaged/cf-cli-installer_osx.pkg
   139        popd
   140      )