Travis CI
Build stages:
Stages can run mutiple jobs at the same time, and it can only move to next stage if the jobs in last stages successfully finished.
How to define Build Stages?
Here’s how you’d set up the build configuration for this in your .travis.yml file:
jobs:
include:
- stage: test
script: ./test 1
- # stage name not required, will continue to use `test`
script: ./test 2
- stage: deploy
script: ./deploy
You can specify the order for stages in the section stages
:
stages:
- compile
- test
- deploy
This following example has 2 build stages:
- One job builds and pushes a Docker image
- Two jobs that pull and test the image
Here’s what the .travis.yml
config could look like:
sudo: true
dist: trusty
jobs:
include:
- stage: build docker image
script:
- echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
- docker build -t travis-ci-build-stages-demo .
- docker images
- docker tag travis-ci-build-stages-demo $DOCKER_USERNAME/travis-ci-build-stages-demo
- docker push $DOCKER_USERNAME/travis-ci-build-stages-demo
- stage: test
script: docker run --rm $DOCKER_USERNAME/travis-ci-build-stages-demo cat hello.txt
- script: docker run --rm $DOCKER_USERNAME/travis-ci-build-stages-demo cat hello.txt