mirror of
https://github.com/certbot/certbot.git
synced 2026-06-06 23:32:06 -04:00
132 lines
5.5 KiB
YAML
132 lines
5.5 KiB
YAML
language: python
|
|
dist: xenial
|
|
|
|
cache:
|
|
directories:
|
|
- $HOME/.cache/pip
|
|
|
|
before_script:
|
|
# On Travis, the fastest parallelization for integration tests has proved to be 4.
|
|
- 'if [[ "$TOXENV" == *"integration"* ]]; then export PYTEST_ADDOPTS="--numprocesses 4"; fi'
|
|
# Use Travis retry feature for farm tests since they are flaky
|
|
- 'if [[ "$TOXENV" == "travis-test-farm"* ]]; then export TRAVIS_RETRY=travis_retry; fi'
|
|
- export TOX_TESTENV_PASSENV=TRAVIS
|
|
- 'if [[ "$SNAP" == true ]]; then snap/local/build_and_install.sh; fi'
|
|
|
|
# Only build pushes to the master branch, PRs, and branches beginning with
|
|
# `test-`, `travis-test-`, or of the form `digit(s).digit(s).x` or
|
|
# `vdigit(s).digit(s).digit(s)`. As documented at
|
|
# https://docs.travis-ci.com/user/customizing-the-build/#safelisting-or-blocklisting-branches,
|
|
# this includes tags so pushing tags of the form `vdigit(s).digit(s).digit(s)`
|
|
# will also trigger tests. This reduces the number of simultaneous Travis runs,
|
|
# which speeds turnaround time on review since there is a cap of on the number
|
|
# of simultaneous runs.
|
|
branches:
|
|
# When changing these branches, please ensure the documentation under
|
|
# "Running tests in CI" is still correct.
|
|
only:
|
|
- master
|
|
- /^\d+\.\d+\.x$/ # this matches our point release branches
|
|
- /^v\d+\.\d+\.\d+$/ # this matches our release tags
|
|
- /^(travis-)?test-.*$/
|
|
|
|
# Jobs for the main test suite are always executed (including on PRs) except for pushes on master.
|
|
not-on-master: ¬-on-master
|
|
if: NOT (type = push AND branch = master)
|
|
|
|
# Jobs for the extended test suite are executed for cron jobs and pushes to
|
|
# non-development branches.
|
|
extended-test-suite: &extended-test-suite
|
|
if: type = cron OR (type = push AND branch != master)
|
|
|
|
matrix:
|
|
include:
|
|
- stage: "Snap"
|
|
sudo: required
|
|
env: SNAP=true TOXENV=integration-external,apacheconftest-external-with-pebble
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- nginx-light
|
|
snaps:
|
|
- name: snapcraft
|
|
channel: stable
|
|
confinement: classic
|
|
- name: lxd
|
|
channel: stable
|
|
git:
|
|
# By default, Travis clones the repo to a depth of 50 commits which can
|
|
# break the ability to use `git describe` to set the version of the
|
|
# snap. This setting removes the --depth flag from git commands solving
|
|
# this problem. See
|
|
# https://docs.travis-ci.com/user/customizing-the-build#git-clone-depth
|
|
# for more info.
|
|
depth: false
|
|
deploy:
|
|
# This section relies on credentials stored in a SNAP_TOKEN environment
|
|
# variable in Travis. See
|
|
# https://docs.travis-ci.com/user/deployment/snaps/ for more info.
|
|
# This credential has a maximum lifetime of 1 year and the current
|
|
# credential will expire on 4/22/2021. The value of SNAP_TOKEN will
|
|
# need to be updated to use a new credential before then to prevent
|
|
# automated deploys from breaking. Remembering to do this is also
|
|
# tracked by https://github.com/certbot/certbot/issues/7931.
|
|
'on':
|
|
# Deploy on release tags or nightly runs from any branch. We only try
|
|
# to deploy from the certbot/certbot repo to prevent errors if forks
|
|
# of this repo try to run tests.
|
|
all_branches: true
|
|
condition: -n $TRAVIS_TAG || $TRAVIS_EVENT_TYPE = cron
|
|
repo: certbot/certbot
|
|
provider: snap
|
|
snap: certbot_*.snap
|
|
channel: edge
|
|
# skip_cleanup is needed to prevent Travis from deleting the snaps we
|
|
# just built and tested. See
|
|
# https://docs.travis-ci.com/user/deployment#uploading-files-and-skip_cleanup.
|
|
skip_cleanup: true
|
|
<<: *extended-test-suite
|
|
|
|
# container-based infrastructure
|
|
sudo: false
|
|
|
|
addons:
|
|
apt:
|
|
packages: # Keep in sync with letsencrypt-auto-source/pieces/bootstrappers/deb_common.sh and Boulder.
|
|
- python-dev
|
|
- gcc
|
|
- libaugeas0
|
|
- libssl-dev
|
|
- libffi-dev
|
|
- ca-certificates
|
|
# For certbot-nginx integration testing
|
|
- nginx-light
|
|
- openssl
|
|
|
|
# tools/pip_install.py is used to pin packages to a known working version
|
|
# except in tests where the environment variable CERTBOT_NO_PIN is set.
|
|
# virtualenv is listed here explicitly to make sure it is upgraded when
|
|
# CERTBOT_NO_PIN is set to work around failures we've seen when using an older
|
|
# version of virtualenv. The option "-I" is set so when CERTBOT_NO_PIN is also
|
|
# set, pip updates dependencies it thinks are already satisfied to avoid some
|
|
# problems with its lack of real dependency resolution.
|
|
install: 'tools/pip_install.py -I tox virtualenv'
|
|
# Most of the time TRAVIS_RETRY is an empty string, and has no effect on the
|
|
# script command. It is set only to `travis_retry` during farm tests, in
|
|
# order to trigger the Travis retry feature, and compensate the inherent
|
|
# flakiness of these specific tests.
|
|
script: '$TRAVIS_RETRY tox'
|
|
|
|
notifications:
|
|
email: false
|
|
irc:
|
|
if: NOT branch =~ ^(travis-)?test-.*$
|
|
channels:
|
|
# This is set to a secure variable to prevent forks from sending
|
|
# notifications. This value was created by installing
|
|
# https://github.com/travis-ci/travis.rb and running
|
|
# `travis encrypt "chat.freenode.net#certbot-devel"`.
|
|
- secure: "EWW66E2+KVPZyIPR8ViENZwfcup4Gx3/dlimmAZE0WuLwxDCshBBOd3O8Rf6pBokEoZlXM5eDT6XdyJj8n0DLslgjO62pExdunXpbcMwdY7l1ELxX2/UbnDTE6UnPYa09qVBHNG7156Z6yE0x2lH4M9Ykvp0G0cubjPQHylAwo0="
|
|
on_cancel: never
|
|
on_success: never
|
|
on_failure: always
|