motivation: more secured ci setup
changes:
* enable :z selinux flag on bind mounts so we can enable selinux on ci
* drop potentially exploitable capabilities from docker-compose
motivation: tsan is broken on ubuntu 18.04.use 16.04 so 5.2 build can pass
changes:
* change 5.2 docker setup to use 16.04 instead of 18.04
* add the ability to pipe arguments to the integration tests via the docker setup
* skip tests_02 integration tests suite since it broken on 5.2 (swift-pm issue?)
fake the new limits from #1362
Co-authored-by: tomer doron <tomer@apple.com>
motivation: prepare to run performance tests in ci
changes:
* add performance-test docker-compose task
* add script that can parse the performance test suite results and compare between two result-sets
* add generic shell docker-compose task
Motivation:
Certain warnings we want to ignore in CI builds but we want to keep
`-warnings-to-errors` on.
Modifications:
define `NIO_CI_BUILD` in the CI builds
Result:
can ignore select warnings in CI
Motivation:
swift-nio example projects (http, echo) don't print anything to the console when running inside docker container because of buffering issue.
Modifications:
Added tty: true to the docker-compose.yaml for http & echo.
Result:
Buffering issue is resolved. http & echo prints logs to the console.
Motivation:
be able to run the sanity check via docker compose
Modifications:
add sanity task to docker compose file
Result:
you can now run sanity check via docker
Motivation: easier testing across different permutations of os and language versions
Modifications:
* update dockerfile to take both swift_version adn ubuntu_version
* update default linux version to 16.04
* create multiple docker-compose files that use arguments to define os and swift versions
* make docker-compose file DRYer with yaml anchors
Result: users/ci can easily run tests across various versions of ubuntu and swift
Motivation:
repository currently contains two seperate docker definitions that are confusing to users
Modifications:
* remove Dockerfile.xenial so we have a canonical docker file for CI and developer testing
* point docker compose to canonical docker file
* define docker compose services for unit and integration tests. and make "test" service run both
* update readme
Result:
users are less confused about docker setup
Motivation:
We need to mount the ~/.ssh directory into the docker image as we use git@ to checkout our dependencies.
Modifications:
Use ~/.ssh as volume as well.
Result:
Be able to use docker images again.
* Docker work
- New image based on xenial.
- Simplified workflow with docker-compose
- Update the readme with docker-compose section
- Move docker related stuff to a dedicated folder
* Add a gen-cert.sh to the container image
* Document certificate generation and how to test all sample servers