bmo-systems repo is responsible for:
- generating tarballs of the perl dependencies ("vendor bundles")
- uploading the above to an amazon s3 bucket
- generating several related docker images
Adding dependencies to BMO (or bugzilla in general) involves adding them to Makefile.PL.
Assuming you have the modified Makefile.PL on a branch of a particular user, you can use "make" to get the updated cpanfile and cpanfile.snapshot files.
The example below is how we added some extra dependencies.
make BRANCH=report-ping-simple-docid REPO=dylanwh/bmo all
Typically if any dependencies are removed in this step, it means they're improperly specified in Makefile.PL. You'll want to figure out if they're really needed or not.
Commit the updated cpanfile and cpanfile.snapshot -- but review the changes carefully!
This is the same as adding a dependency.
Commit the updated cpanfile and cpanfile.snapshot -- but review the changes carefully!
You need to tag releases of bmo-slim after updating or adding any dependency.
CircleCI will build all pushes the master branch (and it ignores all others). If all the jobs are passing and complete, execute the following:
docker pull mozillabteam/bmo-slim:latest
docker tag mozillabteam/bmo-slim:latest mozillabteam/bmo-slim:$(date date +%Y%m%d.1)
docker push mozillabteam/bmo-slim:$(date +%Y%m%d.1)
Afterwards, update the image in Dockerfile and .circleci/config.yml in https://github.com/mozilla-bteam/bmo
jobs that build docker containers
All the jobs below are used to build collections of the perl dependencies that BMO needs.
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.
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.
This job just collects vendor.tar.gzs from other jobs and uploads them to an amazon S3 bucket.
Some bits of configuration used in multiple locations
The following list of steps are used on all jobs that build vendor tarballs.
TODO