Skip to content

Instantly share code, notes, and snippets.

@knm3000
Created September 6, 2016 10:12
Show Gist options
  • Save knm3000/d4e330df18622713c426288c4e47db67 to your computer and use it in GitHub Desktop.
Save knm3000/d4e330df18622713c426288c4e47db67 to your computer and use it in GitHub Desktop.
cf release build steps for POWER
# cf release build steps for POWER:
cd ~
mkdir -p ~/releases
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
\curl -sSL https://get.rvm.io | bash -s stable --ruby=2.3.0
source ~/.rvm/scripts/rvm
gem install bosh_cli
sudo add-apt-repository -y ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install -y git zip openjdk-8-jre openjdk-8-jdk
git clone https://github.com/cloudfoundry/cf-release.git
cd cf-release
./scripts/update
cd ~/cf-release/
bosh create release --name cf
# openjdk
cd ~/cf-release/blobs/openjdk
wget ftp://ftp.unicamp.br/pub/ppc64el/ubuntu/14_04/cloud-foundry/java-8-openjdk-ppc64le.tgz
cd ~/cf-release/src/nats-release/packages/ruby-2.2.5
cat spec; echo -e '- architecture-support/config/config.sub\n- architecture-support/config/config.guess' >> spec
cd ~/cf-release/src/uaa-release/packages/uaa
cat spec; echo -e '- openjdk/java-8-openjdk-ppc64le.tgz' >> spec
sed -i 's/openjdk-1.8.0_91-x86_64-trusty.tar.gz/java-8-openjdk-ppc64le.tgz/g' packaging
sed -i 's/`uname` = "Linux"/`uname -m` = "ppc64le"/g' pre_packaging
sed -i 's/openjdk-1.8.0_91-x86_64-trusty.tar.gz/java-8-openjdk-ppc64le.tgz/g' pre_packaging
# copy binaries
# golang 1.5
cd ~/cf-release/blobs/golang
wget -O ppc64le-go.tar.gz ftp://ftp.unicamp.br/pub/ppc64el/ubuntu/14_04/cloud-foundry/go-1.5.4-ppc64le.tar.gz
fname=$(ls go1.5.*); dst=$(readlink $fname); rm -f $dst; mv ppc64le-go.tar.gz $fname
# golang 1.6
wget -O ppc64le-go.tar.gz ftp://ftp.unicamp.br/pub/ppc64el/ubuntu/14_04/cloud-foundry/go-1.6.2-ppc64le.tar.gz
fname=$(ls go1.6.*); dst=$(readlink $fname); rm -f $dst; mv ppc64le-go.tar.gz $fname
# cli
cd ~/cf-release/blobs/cli
wget -O cf ftp://ftp.unicamp.br/pub/ppc64el/ubuntu/14_04/cloud-foundry/cf
chmod +x cf
fname=$(ls cf-cli*); dst=$(readlink $fname); rm -f $dst; rm $fname; tar zcvf $fname cf
rm cf
# consul, consul-template
cd ~/cf-release/blobs/consul
wget -O consul ftp://ftp.unicamp.br/pub/ppc64el/ubuntu/14_04/cloud-foundry/consul-0.7.0-ppc64le
chmod +x consul
fname=$(ls consul_*); dst=$(readlink $fname); rm -f $dst; rm $fname; zip $fname consul
rm consul
wget -O consul-template ftp://ftp.unicamp.br/pub/ppc64el/ubuntu/14_04/cloud-foundry/consul-template-0.16.0rc1-ppc64le
chmod +x consul-template
fname=$(ls consul-template_*); dst=$(readlink $fname); rm -f $dst; rm $fname; zip $fname consul-template
rm consul-template
# libmariadb
cd ~/cf-release/blobs/libmariadb
fname=$(ls libmariadb-*); dst=$(readlink $fname); rm -f $dst; rm -f $fname
wget ftp://ftp.unicamp.br/pub/ppc64el/ubuntu/14_04/cloud-foundry/libmariadb-5.5.36.tar.xz
# rootfs
cd ~/cf-release/blobs/rootfs
wget -O rootfs.tar.gz ftp://ftp.unicamp.br/pub/ppc64el/ubuntu/14_04/cloud-foundry/cflinuxfs2.tar.gz
fname=$(ls cflinuxfs2*); dst=$(readlink $fname); rm -f $dst; mv rootfs.tar.gz $fname
# final.yml
cd ~/cf-release/config
sed -i 's/provider: s3/provider: local/g' final.yml
sed -i 's/bucket_name: cf-release-blobs/blobstore_path: ~\/cf-release\/blobs/g' final.yml
cd ~/cf-release
bosh upload blobs
# type 'yes' for each blob
sudo update-ca-certificates -f
bosh create release --force --with-tarball --name cf --version $(git describe --tags | sed 's/v//g')
cp ~/cf-release/dev_releases/cf/cf-*.tgz ~/releases/cf-release-$(git describe --tags | sed 's/v//g')-ppc64le.tar.gz
# RESULT: Release tarball ~/releases/cf-release-XXX-ppc64le.tar.gz
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment