g-k / harmony-systems

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

bmo-systems repo is responsible for:
  1. generating tarballs of the perl dependencies ("vendor bundles")
  2. uploading the above to an amazon s3 bucket
  3. generating several related docker images

How-To

Add perl dependencies to BMO

Adding dependencies to BMO (or bugzilla in general) involves adding them to Makefile.PL. Getting these dependencies deployed to our infrastructure is more complicated.

For each type of bundle we produce, you need to run the docker container mozillabteam/PLATFORM. Currently PLATFORM is centos6 and ubuntu14. From inside the container, run the following:

source /build/env.sh
git clone --depth 1 https://github.com/mozillabteam/bmo.git
cd bmo
cp ../cpanfile.snapshot .
$PERL Makefile.PL
make cpanfile GEN_CPANFILE_ARGS="-D bmo"
$PERL $CARTON install

After that, use 'docker cp' to copy build/bmo/cpanfile and /build/bmo/cpanfile.snapshot to bundle/PLATFORM and commit them.

Upgrade perl dependencies

This is the same as adding a dependency, except instead of "$PERL $CARTON install" you run "$PERL $CARTON upgrade".

Configuration

docker jobs

jobs that build docker containers (bmo-base, bmo-ci, etc)

bmo-base

bmo-ci

bmo-slim

docker-centos6

docker-ubuntu14

bundle jobs

All the jobs below are used to build collections of the perl dependencies that BMO needs.

centos 6 job

This job creates the 'bmo' bundle, which is for use on centos 6 or RHEL 6 machines. This is what production, vagrant, CI, and so on use.

ubuntu 14.04 job

This job creates the 'mozreview' bundle, which is used by the version-control-tools bmoweb container. It is used for mozreview and probably some other systems and is a huge burden that makes me sad.

upload job

This job just collects vendor.tar.gzs from other jobs and uploads them to an amazon S3 bucket.

Other pieces of code

Some bits of configuration used in multiple locations

buildbundles steps

The following list of steps are used on all jobs that build vendor tarballs.

About


Languages

Language:Perl 59.4%Language:Shell 35.3%Language:Makefile 5.3%