Skip to content
This repository has been archived by the owner on Jul 21, 2021. It is now read-only.

Latest commit

 

History

History
143 lines (75 loc) · 3.36 KB

README.md

File metadata and controls

143 lines (75 loc) · 3.36 KB

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.

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!

Upgrade perl dependencies

This is the same as adding a dependency.

Commit the updated cpanfile and cpanfile.snapshot -- but review the changes carefully!

Make a new release of bmo-slim

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

Configuration

docker jobs

jobs that build docker containers

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.

TODO