This repository contains templates than can be used with Gitlab's include keyword. A description of the templates is available below.
This contains jobs for executing the standard CI/CD process for projects within the HCA.
- Build (builds the image and pushes to quay.io using the short commit hash. e.g. ebi-ait/ingest-core:abc123
- Release dev (only on dev branch. Pulls the image and releases using the latest-dev tag or one defined with
$DEV_RELEASE_IMAGE
) - Release master (only on master branch. Pulls the image and releases using the latest tag or one defined with
$MASTER_RELEASE_IMAGE
) - Deploy dev (only on dev branch. Deploys to the dev cluster)
- Integration dev (runs integration tests on dev environment using ingest-integration-tests)
- Deploy staging (only on master branch. Deploys to the staging cluster)
- Integration staging (runs integration tests on staging environment using ingest-integration-tests)
- Deploy prod (only on master branch and when manually triggered. Deploys to the prod cluster)
- Integration prod (runs integration tests on prod environment using ingest-integration-tests)
- Merge dev to master - merges dev branch to master branch
- Create a feature branch and commit changes to it
- naming convention:
feature/dcp-xyz-title
orbugfix/dcp-xyz-title
where xyz is the ticket number
- naming convention:
- PR feature branch -> dev
- naming convention:
dcp-xyz title
where xyz is the ticket number - put in the description the dcp-xyz and ebi-ait/dcp-ingest-central#xyz automated link keywords so that zenhub and github link the pr to the ticket
- naming convention:
- Build (and unit tests if specified in project including this template) will be run automatically
- PR approved and merged to dev
- get reviews from the team
- address the review
- PR checks run successfully on gitlab
- Deploy to dev environment and run integration tests
- this happens automatically after merging the PR to dev
- Merge dev -> master
- Deploy to staging environment and run integration tests
- Manual wrangler testing on staging environment
- Wrangler approval
- Manually trigger a deploy to prod environment
- Integration tests on prod are automatically run
These can be overriden in the project .gitlab-ci.yaml
that includes this template.
APP_NAME
- By default is
CI_PROJECT_NAME
- By default is
DEV_REPLICAS
- Default is
1
- Default is
STAGING_REPLICAS
- Default is
1
- Default is
PROD_REPLICAS
- Default is
1
- Default is
IMAGE_NAME
- Default is e.g.
quay.io/ebi-ait/$CI_PROJECT_NAME:$CI_COMMIT_SHORT_SHA
so e.g. `quay.io/ebi-ait/ingest-core:abc123
- Default is e.g.
DEV_RELEASE_IMAGE
- Default is
quay.io/ebi-ait/$CI_PROJECT_NAME:latest-dev
- Default is
MASTER_RELEASE_IMAG
- Default is
quay.io/ebi-ait/$CI_PROJECT_NAME:latest
- Default is
You will also need to ensure QUAY_USERNAME
and QUAY_PASSWORD
are set in the group CI/CD variables in Gitlab UI