github.com/jenspinney/cli@v6.42.1-0.20190207184520-7450c600020e+incompatible/ci/cli/tasks/create-installers.yml (about)

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