Migrate CI to GitLab
CI at eLife was using Jenkins. For most tasks it would delegate to make targets.
This rough outline:
- Build and run tests (Make targets, using Docker and Docker Compose)
- "Develop" (main) branch only:
- Merge into "master" (although we don't really do anything with that branch, but it's a record of what had passed ci)
- Push Docker images with the "_unstable" suffix and commit hash as the tag (as well as
latest
), e.g.:elifesciences/sciencebeam-parser_unstable:9709218a80b276cea1e092c2a56948ee6cdeddea
elifesciences/sciencebeam-parser_unstable:latest
elifesciences/sciencebeam-parser_unstable:9709218a80b276cea1e092c2a56948ee6cdeddea-cv
elifesciences/sciencebeam-parser_unstable:latest-cv
- For PR branches only:
- Publish TestPyPI package (Make target), with a generated version based on date/time
- For Tag branches only (release):
- Push Docker images (without "_unstable" suffix), and tag (minus "v") as well as
latest
, e.g.:elifesciences/sciencebeam-parser:0.1.6
elifesciences/sciencebeam-parser:latest
elifesciences/sciencebeam-parser:0.1.6-cv
elifesciences/sciencebeam-parser:latest-cv
- Publish PyPI package (Make target), with a tag as version (minus "v")
- Push Docker images (without "_unstable" suffix), and tag (minus "v") as well as
Required secrets:
- Docker Hub (alternatively could push to another container registry)
- TestPyPI
- PyPI
CI Node Dependencies:
- Make
- Docker
- Docker Compose