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