netboot.xyz/.travis.yml
2020-10-27 23:55:00 -05:00

190 lines
5.2 KiB
YAML

os: linux
dist: focal
language: shell
services:
- docker
env:
global:
- DEBIAN_FRONTEND="noninteractive"
jobs:
include:
- stage: test
if: type = pull_request
language: python
install:
- pip install ansible ansible-lint
- ansible-lint --version
script:
- ansible-playbook -i inventory site.yml --syntax-check
- ansible-lint -v roles/netbootxyz
- stage: development
if: branch = development AND type != pull_request
before_install:
- ./script/retrieve_certs
script:
- ./script/build_release dev
after_failure:
- ./script/message failure
deploy:
- provider: s3
edge: true
access_key_id: $AWS_ACCESS_KEY_ID
secret_access_key: $AWS_SECRET_ACCESS_KEY
bucket: $BUCKET_DEV
local_dir: s3out
upload_dir: $TRAVIS_COMMIT
skip_cleanup: true
on:
branch: development
- provider: s3
edge: true
access_key_id: $AWS_ACCESS_KEY_ID
secret_access_key: $AWS_SECRET_ACCESS_KEY
bucket: $BUCKET_DEV
local_dir: s3outver
skip_cleanup: true
on:
branch: development
after_deploy:
- >
if ! [ "$AFTER_DEPLOY_RUN" ]; then
export AFTER_DEPLOY_RUN=1;
./script/message dev-push
fi
- stage: pull-request
if: type = pull_request
script:
- ./script/build_release pr
- stage: release-candidate
if: branch = RC AND type != pull_request
before_install:
- ./script/retrieve_certs
script:
- ./script/build_release rc
workspaces:
create:
name: githubassets
paths:
- githubout
after_failure:
- ./script/message failure
before_deploy:
- export RELEASE_TAG=$(cat version.txt)-RC
deploy:
- provider: s3
edge: true
access_key_id: $AWS_ACCESS_KEY_ID
secret_access_key: $AWS_SECRET_ACCESS_KEY
bucket: $BUCKET_STAGING
local_dir: s3out-latest
upload_dir: rc
skip_cleanup: true
on:
branch: RC
- provider: s3
edge: true
access_key_id: $AWS_ACCESS_KEY_ID
secret_access_key: $AWS_SECRET_ACCESS_KEY
bucket: $BUCKET_STAGING
local_dir: s3out
upload_dir: $RELEASE_TAG
skip_cleanup: true
on:
branch: RC
- provider: s3
edge: true
access_key_id: $AWS_ACCESS_KEY_ID
secret_access_key: $AWS_SECRET_ACCESS_KEY
bucket: $BUCKET_STAGING
local_dir: s3outver
skip_cleanup: true
on:
branch: RC
- stage: rc-github
if: branch = RC AND type != pull_request
before_install:
- ./script/pre_install
workspaces:
use: githubassets
script: skip
before_deploy:
- export RELEASE_TAG=$(cat version.txt)-RC
- ./script/tag
deploy:
- provider: releases
token: $GITHUB_TOKEN
file_glob: true
file: githubout/*
name: $RELEASE_TAG
prerelease: true
skip_cleanup: true
on:
branch: RC
after_deploy:
- aws configure set preview.cloudfront true
- aws cloudfront create-invalidation --distribution-id $CLOUDFRONT_DIST_ID_STAGING --paths "rc/*" "rc/ipxe/*"
- ./script/message rc-push
- stage: release
if: branch = master AND type != pull_request
before_install:
- ./script/retrieve_certs
script:
- ./script/build_release release
workspaces:
create:
name: githubassets
paths:
- githubout
after_failure:
- ./script/message failure
before_deploy:
- export RELEASE_TAG=$(cat version.txt)
deploy:
- provider: s3
edge: true
access_key_id: $AWS_ACCESS_KEY_ID
secret_access_key: $AWS_SECRET_ACCESS_KEY
bucket: $BUCKET_PROD
local_dir: s3out-latest
skip_cleanup: true
on:
branch: master
- provider: s3
edge: true
access_key_id: $AWS_ACCESS_KEY_ID
secret_access_key: $AWS_SECRET_ACCESS_KEY
bucket: $BUCKET_PROD
local_dir: s3out
upload_dir: $RELEASE_TAG
skip_cleanup: true
on:
branch: master
- stage: release-github
if: branch = master AND type != pull_request
before_install:
- ./script/pre_install
workspaces:
use: githubassets
script: skip
before_deploy:
- export RELEASE_TAG=$(cat version.txt)
- git tag ${RELEASE_TAG}
deploy:
- provider: releases
token: $GITHUB_TOKEN
file_glob: true
file: githubout/*
name: $RELEASE_TAG
skip_cleanup: true
on:
branch: master
after_deploy:
- aws configure set preview.cloudfront true
- aws cloudfront create-invalidation --distribution-id $CLOUDFRONT_DIST_ID_PROD --paths "/*" "/ipxe/*"
- ./script/message live-push