certbot/certbot-apache/certbot_apache
Adrien Ferrand 2ac99fefe0 [Windows|Linux] Launch integration tests on Pebble without Docker (#7157)
This PR is a part of the actions necessary to make Certbot-CI work on Windows, in order to execute the integration tests on this platform.

Following #7156, this PR changes how the integration tests are setup against Pebble to not need Docker anymore.

As a reminder, one can check #7156 and letsencrypt/pebble#240 to see the rationale about why using Docker is a problem to run the integration tests on Windows.

Basically, this PR executes directly Pebble using its executable, since it is build using Go, and Go produces self-contained executable that can run without any installation on Linux and on Windows. During the integration tests setup, Certbot-CI will get the Pebble (and Challtestsrv) executables for the defined target version on the GitHub releases. The binaries are persisted on the filesystem, so it is not needed to download them again on the second integration tests execution. Nonetheless, we are talking about 20MB of executables.

Since the setup needs to hold a state, I also took this occasion to refactor the acme_server, in order to use on object oriented approach and improve the readability/maintainability.

Once this PR and #7156 are merged, Docker will not be needed anymore for the main integration tests usecase, that is to use Pebble.

* Complete process

* Fix nginx cert path

* Check conditionnally docker

* Update gitignore, fix apacheconftest

* Full object

* Carriage return

* Move to official v2.1.0 of pebble

* Fix name

* Update acme_server.py

* Relaunch CI

* Update certbot-ci/certbot_integration_tests/utils/acme_server.py

Co-Authored-By: Brad Warren <bmw@users.noreply.github.com>

* Update certbot-ci/certbot_integration_tests/utils/acme_server.py

Co-Authored-By: Brad Warren <bmw@users.noreply.github.com>

* Update docstring

* Update documentation

* Configure a stdout to ACMEServer

* Map all process through defined stdout

* Remove unused variable

* Handle using signals

* Use failsafe entering context

* Remove failsafe rmtree, that is not needed anymore
2019-07-10 14:29:57 -07:00
..
augeas_lens Update Augeas lens to fix some Apache configuration parsing issues (#6438) 2018-10-31 09:34:14 -07:00
tests [Windows|Linux] Launch integration tests on Pebble without Docker (#7157) 2019-07-10 14:29:57 -07:00
__init__.py s/Let's Encrypt/Certbot certbot-apache 2016-04-13 16:36:53 -07:00
apache_util.py [Windows] Security model for files permissions - STEP 2 (#6895) 2019-04-12 13:32:51 -07:00
centos-options-ssl-apache.conf update Apache ciphersuites (#5383) 2018-01-09 07:46:21 -08:00
configurator.py Refactor augeas_configurator.py functionality to configurator.py and parser.py accordingly. (#7181) 2019-06-28 08:39:13 -07:00
constants.py Gradually increasing HSTS max-age (#5912) 2018-06-21 07:27:19 -07:00
display_ops.py [Windows] Security model for files permissions - STEP 2 (#6895) 2019-04-12 13:32:51 -07:00
entrypoint.py Implements specific overrides for Fedora 29+ in Apache plugin (#6988) 2019-05-01 03:21:10 +03:00
http_01.py [Windows] Security model for files permissions - STEP 3d (#6968) 2019-07-03 16:20:43 -07:00
obj.py Fix Pylint upgrade issues 2018-05-16 20:37:39 +00:00
options-ssl-apache.conf update Apache ciphersuites (#5383) 2018-01-09 07:46:21 -08:00
override_arch.py Make Apache control script and binary paths configurable on command line (#6238) 2018-08-02 08:17:38 -07:00
override_centos.py Refactor augeas_configurator.py functionality to configurator.py and parser.py accordingly. (#7181) 2019-06-28 08:39:13 -07:00
override_darwin.py Make Apache control script and binary paths configurable on command line (#6238) 2018-08-02 08:17:38 -07:00
override_debian.py [Windows] Security model for files permissions - STEP 2 (#6895) 2019-04-12 13:32:51 -07:00
override_fedora.py Refactor augeas_configurator.py functionality to configurator.py and parser.py accordingly. (#7181) 2019-06-28 08:39:13 -07:00
override_gentoo.py Refactor augeas_configurator.py functionality to configurator.py and parser.py accordingly. (#7181) 2019-06-28 08:39:13 -07:00
override_suse.py fix(apache): s/handle_mods/handle_modules (#6347) 2018-09-06 15:00:20 -07:00
parser.py Refactor augeas_configurator.py functionality to configurator.py and parser.py accordingly. (#7181) 2019-06-28 08:39:13 -07:00