Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Full azure pipelines #71

Closed
wants to merge 162 commits into from
Closed
Changes from 1 commit
Commits
Show all changes
162 commits
Select commit Hold shift + click to select a range
caac15a
Refactor pipeline to include linux tests
adferrand Apr 25, 2020
b71385f
Add linux dependencies
adferrand Apr 25, 2020
cbc2849
Sudo
adferrand Apr 25, 2020
38444b1
Add oldest tests
adferrand Apr 25, 2020
a2d0c73
Focus on oldest tests
adferrand Apr 25, 2020
d430c2a
Other attempt
adferrand Apr 25, 2020
3072ead
Upgrade system
adferrand Apr 25, 2020
542a8e3
Sudo
adferrand Apr 25, 2020
14a8602
TOXENV
adferrand Apr 25, 2020
da59a4f
Use pip_install
adferrand Apr 25, 2020
1854740
Add apache_compat
adferrand Apr 25, 2020
b85f1b9
Remove interactive, we are not in a terminal
adferrand Apr 25, 2020
289bde4
Update dependencies
adferrand Apr 25, 2020
a2fb9ff
Prepare advanced logic
adferrand Apr 25, 2020
88d69e2
Add dep
adferrand Apr 25, 2020
76ee725
Fix build dep
adferrand Apr 25, 2020
1409868
Sudo
adferrand Apr 25, 2020
15b59d8
Detect also Azure Pipelines
adferrand Apr 25, 2020
ebd9ffc
Fix source folder
adferrand Apr 25, 2020
57a9d93
Add extended tests
adferrand Apr 25, 2020
6587efb
Remove -it
adferrand Apr 25, 2020
f9b00f7
Simple move
adferrand Apr 25, 2020
fa302fe
Install docker CLI locally
adferrand Apr 25, 2020
ec73fa4
Fix unit tests
adferrand Apr 25, 2020
eb2222a
Run interactive, but without tty
adferrand Apr 25, 2020
dfb0eae
Add back -it
adferrand Apr 25, 2020
c288dfd
Try unbuffer
adferrand Apr 25, 2020
309a4d3
Unbuffer also for apache_compat
adferrand Apr 25, 2020
e8b3c67
Another try for snaps
adferrand Apr 25, 2020
9b022a9
Connect runner container to host network
adferrand Apr 25, 2020
f821de3
Original tox.ini
adferrand Apr 25, 2020
2a5c194
Dedicated script for oldest tests
adferrand Apr 25, 2020
93c5396
Fix coverage and use bare vms
adferrand Apr 25, 2020
bf83278
Consistent paths across dockers
adferrand Apr 25, 2020
60cbabc
Merge branch 'full-azure-pipelines' of github.com:adferrand/certbot i…
adferrand Apr 25, 2020
8d871a9
Mount also tmp
adferrand Apr 25, 2020
0ece985
Simplify config
adferrand Apr 25, 2020
b60f656
Correct config
adferrand Apr 25, 2020
fae4362
Working oldest test custom script
adferrand Apr 26, 2020
1dfb4b3
Try PPA
adferrand Apr 26, 2020
02603db
Factor logic with templates
adferrand Apr 26, 2020
2bf373b
Conditional execution
adferrand Apr 26, 2020
3d081d3
Use pool.vmImage
adferrand Apr 26, 2020
7021426
Use Agent.OS
adferrand Apr 26, 2020
b99ec94
Always use IMAGE_NAME
adferrand Apr 26, 2020
466d847
Fix format
adferrand Apr 26, 2020
6bc3a2a
Disable Travis
adferrand Apr 26, 2020
f3ace29
Reduce verbosity
adferrand Apr 26, 2020
b32f649
Reduce verbosity
adferrand Apr 26, 2020
d9ad84e
Simple move
adferrand Apr 26, 2020
dc31bb2
Hello World for Travis
adferrand Apr 26, 2020
997a55e
Prepare notifications
adferrand Apr 26, 2020
6260a30
Configure notification
adferrand Apr 26, 2020
d983b7f
Test failure
adferrand Apr 26, 2020
9a58c76
Configure stage
adferrand Apr 26, 2020
ee98bfc
Test without condition
adferrand Apr 26, 2020
e8d05f6
Use env
adferrand Apr 26, 2020
e877c9c
Now use it
adferrand Apr 26, 2020
b553a7e
Get env
adferrand Apr 26, 2020
77e7f85
Pull together
adferrand Apr 26, 2020
75f8ddd
Fix variable
adferrand Apr 26, 2020
02e630d
Farm tests on Azure configuration
adferrand Apr 26, 2020
6e8ff78
Test failure
adferrand Apr 26, 2020
eb0ac10
Better notify template
adferrand Apr 26, 2020
7c986b7
Update message
adferrand Apr 26, 2020
fa9bfbe
Continue format
adferrand Apr 26, 2020
48550fe
Continue format
adferrand Apr 26, 2020
1ca4351
COntinue format
adferrand Apr 26, 2020
c2f2e4e
Final touch
adferrand Apr 26, 2020
2d2ff6f
Reactivate everything
adferrand Apr 26, 2020
8be635a
Remove forced failure
adferrand Apr 26, 2020
1042743
Configure pipelines
adferrand Apr 26, 2020
0b3a270
No notification for tests branches
adferrand Apr 26, 2020
168fb7a
Prepare deploy
adferrand Apr 26, 2020
35f2345
Focus on packaging jobs
adferrand Apr 26, 2020
b26854e
Update template name
adferrand Apr 26, 2020
0963be1
Refactor
adferrand Apr 26, 2020
16f3ab1
Reuse copy task here
adferrand Apr 26, 2020
28e8fc4
Define variable group
adferrand Apr 26, 2020
ba32120
Merge branch 'master' into full-azure-pipelines
adferrand Jun 11, 2020
d339a7b
Add snap multiarch build
adferrand Jun 11, 2020
da4b3e7
Add +x permissions
adferrand Jun 11, 2020
5bf7b91
Simplify steps
adferrand Jun 11, 2020
621fc08
Disable deploy for now
adferrand Jun 11, 2020
1f4a0bc
Fix
adferrand Jun 11, 2020
46e7f1d
Fix paths
adferrand Jun 11, 2020
b16bb36
Parsing
adferrand Jun 11, 2020
5692bc3
Try without template
adferrand Jun 11, 2020
9474d53
Split in stages
adferrand Jun 12, 2020
248ba55
Fix names
adferrand Jun 12, 2020
78de077
Revert "Split in stages"
adferrand Jun 12, 2020
55ec7ce
Name
adferrand Jun 12, 2020
7ba2d96
Fix path
adferrand Jun 12, 2020
beccf72
Name
adferrand Jun 12, 2020
b181393
Variables
adferrand Jun 13, 2020
7d67a92
Merge branch 'master' into full-azure-pipelines
adferrand Jun 19, 2020
5b580d0
Add missing standard jobs
adferrand Jun 19, 2020
d220f5c
Merge branch 'master' into full-azure-pipelines
adferrand Jun 26, 2020
f8add8d
Consume snapcraft config and mattermost webhook
adferrand Jun 26, 2020
90fbdf4
Multi snap push
adferrand Jun 26, 2020
e09cbcb
Reconfigure variables in extended jobs
adferrand Jun 26, 2020
d140408
Configure farm tests
adferrand Jun 26, 2020
12dce1d
Merge logic for farm tests
adferrand Jun 26, 2020
fd8e13d
Fix
adferrand Jun 26, 2020
53b7093
Simplify config
adferrand Jun 26, 2020
636ce3a
Activate farm tests
adferrand Jun 26, 2020
e71f79e
Embed interactive console behavior in dockers
adferrand Jun 26, 2020
c779a37
Remove initialization of the pem file
adferrand Jun 26, 2020
c36070e
Some fixes
adferrand Jun 26, 2020
d5c7ccd
Use local project for test farm
adferrand Jun 26, 2020
ac9f83f
Test
adferrand Jun 26, 2020
c570a5d
Improve script call
adferrand Jun 27, 2020
0bc5697
Install util-linux
adferrand Jun 27, 2020
f17406e
Revert "Embed interactive console behavior in dockers"
adferrand Jun 27, 2020
ef00c6e
Include script call in tox
adferrand Jun 27, 2020
9e490c2
Real copy
adferrand Jun 27, 2020
e70eb4e
Fix calls
adferrand Jun 27, 2020
4d5b83a
Fix snap name
adferrand Jun 27, 2020
2d8c7ce
Put auth file in the right place
adferrand Jun 27, 2020
e49d6ca
Prevent daemons to start upon install
adferrand Jun 27, 2020
54fba18
Try another fix
adferrand Jun 27, 2020
4643f9b
Focus on farm tests
adferrand Jun 28, 2020
43069a9
Explicit non existent file
adferrand Jun 28, 2020
4ce6122
Stat
adferrand Jun 28, 2020
eda44c3
Audit network
adferrand Jun 28, 2020
e236dd8
Audit network root
adferrand Jun 28, 2020
0798b29
Stop nginx
adferrand Jun 28, 2020
28bfcf7
Default ports
adferrand Jun 28, 2020
d867193
Explicit keyname
adferrand Jun 28, 2020
3eecd71
Add env variables for farm tests
adferrand Jun 28, 2020
a244d17
Test failure
adferrand Jun 28, 2020
3aafcd7
Fix interpolation of the message
adferrand Jun 28, 2020
122f3d1
Improve message
adferrand Jun 28, 2020
ee4e6b3
Revert "Test failure"
adferrand Jun 28, 2020
916452f
Reactivate everything
adferrand Jun 28, 2020
4dcb7ad
Smarter build of oldest tests
adferrand Jun 28, 2020
6a41063
Move oldest tests to Xenial, and use pipstrap to stabilize the env
adferrand Jun 28, 2020
04cda0e
Split oldest tests
adferrand Jun 28, 2020
68950c0
Merge branch 'master' into full-azure-pipelines
adferrand Jun 30, 2020
9bdd9b8
Reorganize pipelines to refer to unitary stages
adferrand Jun 30, 2020
c556bb7
Update .azure-pipelines/templates/jobs/extended-tests-jobs.yml
adferrand Jun 30, 2020
bb75444
Fix snap -> snapd
adferrand Jun 30, 2020
36d6bc6
Fixes
adferrand Jun 30, 2020
4a941ef
Update .azure-pipelines/templates/jobs/extended-tests-jobs.yml
adferrand Jun 30, 2020
71fbcb5
Use not instead of coalesce
adferrand Jun 30, 2020
fb6a248
Try another approach
adferrand Jun 30, 2020
def19b3
Simplify condition
adferrand Jun 30, 2020
70ffd68
Improve farm tests, add comment
adferrand Jun 30, 2020
9a07ee5
Make test-farm generic
adferrand Jun 30, 2020
a6ecf68
Fix position of jobs
adferrand Jun 30, 2020
6e02f3d
Remove unused logic in run_oldest_tests
adferrand Jun 30, 2020
4d127e1
Fix toxenv names
adferrand Jun 30, 2020
2da124c
Fix test-farm logic
adferrand Jun 30, 2020
e9bf443
Export variable
adferrand Jun 30, 2020
168678b
Simply use docker run -t instead of docker run -it
adferrand Jun 30, 2020
9eb10d6
Remove a dependency not needed
adferrand Jun 30, 2020
1750e73
Rebrand advanced pipeline into nightly pipeline, running only master …
adferrand Jun 30, 2020
edaf3eb
Remove Travis references in contributing.rst. Run full tests only bra…
adferrand Jun 30, 2020
07fa8d7
Remove travis config.
adferrand Jun 30, 2020
4f4c1fc
Use expressions
adferrand Jun 30, 2020
c000c9d
Check expression
adferrand Jun 30, 2020
f88ef76
Expression is valid.
adferrand Jun 30, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Disable Travis
  • Loading branch information
adferrand committed Apr 26, 2020
commit 6bc3a2ada49f42e9e7f2faf56f90ec26e4bfa125
322 changes: 1 addition & 321 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,321 +1 @@
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: &not-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:
# Main test suite
- stage: "Test"
python: "2.7"
env: ACME_SERVER=pebble TOXENV=integration
<<: *not-on-master

# As documented at
# https://docs.travis-ci.com/user/build-stages/#how-to-define-build-stages,
# the previous stage will be automatically applied to all subsequent jobs
# until a new stage is defined.

# This job is always executed, including on master
- python: "3.8"
env: TOXENV=py38-cover FYI="py38 tests + code coverage"

- python: "3.7"
env: TOXENV=lint
<<: *not-on-master
- python: "3.5"
env: TOXENV=mypy
<<: *not-on-master
- python: "2.7"
# Ubuntu Trusty or older must be used because the oldest version of
# cryptography we support cannot be compiled against the version of
# OpenSSL in Xenial or newer.
dist: trusty
env: TOXENV='py27-{acme,apache,apache-v2,certbot,dns,nginx}-oldest'
<<: *not-on-master
- python: "2.7"
env: TOXENV=py27
<<: *not-on-master
- python: "3.5"
env: TOXENV=py35
<<: *not-on-master
- sudo: required
env: TOXENV=apache_compat
services: docker
addons:
<<: *not-on-master
- sudo: required
env: TOXENV=le_auto_xenial
services: docker
<<: *not-on-master
- python: "2.7"
env: TOXENV=apacheconftest-with-pebble
<<: *not-on-master
- python: "2.7"
env: TOXENV=nginxroundtrip
<<: *not-on-master

# Extended test suite on cron jobs and pushes to tested branches other than master
- sudo: required
env: TOXENV=nginx_compat
services: docker
addons:
<<: *extended-test-suite
- python: "3.7"
env:
- TOXENV=travis-test-farm-apache2
- secure: "f+j/Lj9s1lcuKo5sEFrlRd1kIAMnIJI4z0MTI7QF8jl9Fkmbx7KECGzw31TNgzrOSzxSapHbcueFYvNCLKST+kE/8ogMZBbwqXfEDuKpyF6BY3uYoJn+wPVE5pIb8Hhe08xPte8TTDSMIyHI3EyTfcAKrIreauoArePvh/cRvSw="
<<: *extended-test-suite
- python: "3.7"
env:
- TOXENV=travis-test-farm-leauto-upgrades
- secure: "f+j/Lj9s1lcuKo5sEFrlRd1kIAMnIJI4z0MTI7QF8jl9Fkmbx7KECGzw31TNgzrOSzxSapHbcueFYvNCLKST+kE/8ogMZBbwqXfEDuKpyF6BY3uYoJn+wPVE5pIb8Hhe08xPte8TTDSMIyHI3EyTfcAKrIreauoArePvh/cRvSw="
git:
depth: false # This is needed to have the history to checkout old versions of certbot-auto.
<<: *extended-test-suite
- python: "3.7"
env:
- TOXENV=travis-test-farm-certonly-standalone
- secure: "f+j/Lj9s1lcuKo5sEFrlRd1kIAMnIJI4z0MTI7QF8jl9Fkmbx7KECGzw31TNgzrOSzxSapHbcueFYvNCLKST+kE/8ogMZBbwqXfEDuKpyF6BY3uYoJn+wPVE5pIb8Hhe08xPte8TTDSMIyHI3EyTfcAKrIreauoArePvh/cRvSw="
<<: *extended-test-suite
- python: "3.7"
env:
- TOXENV=travis-test-farm-sdists
- secure: "f+j/Lj9s1lcuKo5sEFrlRd1kIAMnIJI4z0MTI7QF8jl9Fkmbx7KECGzw31TNgzrOSzxSapHbcueFYvNCLKST+kE/8ogMZBbwqXfEDuKpyF6BY3uYoJn+wPVE5pIb8Hhe08xPte8TTDSMIyHI3EyTfcAKrIreauoArePvh/cRvSw="
<<: *extended-test-suite
- python: "3.7"
env: TOXENV=py37 CERTBOT_NO_PIN=1
<<: *extended-test-suite
- python: "2.7"
env: ACME_SERVER=boulder-v1 TOXENV=integration
sudo: required
services: docker
<<: *extended-test-suite
- python: "2.7"
env: ACME_SERVER=boulder-v2 TOXENV=integration
sudo: required
services: docker
<<: *extended-test-suite
- python: "2.7"
env: ACME_SERVER=boulder-v1 TOXENV=integration-certbot-oldest
# Ubuntu Trusty or older must be used because the oldest version of
# cryptography we support cannot be compiled against the version of
# OpenSSL in Xenial or newer.
dist: trusty
sudo: required
services: docker
<<: *extended-test-suite
- python: "2.7"
env: ACME_SERVER=boulder-v2 TOXENV=integration-certbot-oldest
# Ubuntu Trusty or older must be used because the oldest version of
# cryptography we support cannot be compiled against the version of
# OpenSSL in Xenial or newer.
dist: trusty
sudo: required
services: docker
<<: *extended-test-suite
- python: "2.7"
env: ACME_SERVER=boulder-v1 TOXENV=integration-nginx-oldest
# Ubuntu Trusty or older must be used because the oldest version of
# cryptography we support cannot be compiled against the version of
# OpenSSL in Xenial or newer.
dist: trusty
sudo: required
services: docker
<<: *extended-test-suite
- python: "2.7"
env: ACME_SERVER=boulder-v2 TOXENV=integration-nginx-oldest
# Ubuntu Trusty or older must be used because the oldest version of
# cryptography we support cannot be compiled against the version of
# OpenSSL in Xenial or newer.
dist: trusty
sudo: required
services: docker
<<: *extended-test-suite
- python: "3.6"
env: TOXENV=py36
<<: *extended-test-suite
- python: "3.7"
env: TOXENV=py37
<<: *extended-test-suite
- python: "3.5"
env: ACME_SERVER=boulder-v1 TOXENV=integration
sudo: required
services: docker
<<: *extended-test-suite
- python: "3.5"
env: ACME_SERVER=boulder-v2 TOXENV=integration
sudo: required
services: docker
<<: *extended-test-suite
- python: "3.6"
env: ACME_SERVER=boulder-v1 TOXENV=integration
sudo: required
services: docker
<<: *extended-test-suite
- python: "3.6"
env: ACME_SERVER=boulder-v2 TOXENV=integration
sudo: required
services: docker
<<: *extended-test-suite
- python: "3.7"
env: ACME_SERVER=boulder-v1 TOXENV=integration
sudo: required
services: docker
<<: *extended-test-suite
- python: "3.7"
env: ACME_SERVER=boulder-v2 TOXENV=integration
sudo: required
services: docker
<<: *extended-test-suite
- python: "3.8"
env: ACME_SERVER=boulder-v1 TOXENV=integration
<<: *extended-test-suite
- python: "3.8"
env: ACME_SERVER=boulder-v2 TOXENV=integration
<<: *extended-test-suite
- sudo: required
env: TOXENV=le_auto_jessie
services: docker
<<: *extended-test-suite
- sudo: required
env: TOXENV=le_auto_centos6
services: docker
<<: *extended-test-suite
- sudo: required
env: TOXENV=le_auto_oraclelinux6
services: docker
<<: *extended-test-suite
- sudo: required
env: TOXENV=docker_dev
services: docker
addons:
apt:
packages: # don't install nginx and apache
- libaugeas0
<<: *extended-test-suite
- 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
script: None