Build Stages: Share files via S3
This example has 2 build stages:
- Two jobs that set up files on S3.
- One job that uses both files from stage 1.
Here’s what the .travis.yml
config could look like:
dist: xenial
env:
global:
# include $HOME/.local/bin for `aws`
- PATH=$HOME/.local/bin:$PATH
before_install:
- pyenv global 3.7.1
- pip install -U pip
- pip install awscli
- mkdir -p ~/$TRAVIS_BUILD_NUMBER
- aws s3 sync s3://travis-build-stages-shared-storage-test/$TRAVIS_BUILD_NUMBER ~/$TRAVIS_BUILD_NUMBER
jobs:
include:
- stage: setup files
script: echo one | tee > ~/$TRAVIS_BUILD_NUMBER/one
- stage: setup files
script: echo two | tee > ~/$TRAVIS_BUILD_NUMBER/two
- stage: use shared files
script:
- cat ~/$TRAVIS_BUILD_NUMBER/*
after_success:
- aws s3 rm --recursive s3://travis-build-stages-shared-storage-test/$TRAVIS_BUILD_NUMBER # clean up after ourselves
after_success:
- aws s3 sync ~/$TRAVIS_BUILD_NUMBER s3://travis-build-stages-shared-storage-test/$TRAVIS_BUILD_NUMBER
This is how the build matrix would look like:
You can find the code for this example on our demo repository: