In the current Copilot pipelines the only option for running tests is to run commands directly inside the CodeBuild stage. This doesn't really fit with the container-first spirit of Copilot.
There are a few things that need to be done to enable containers for testing:
Some or all of these approaches would encourage users to implement both unit and integration tests, and it would allow them to keep every aspect of the release pipeline containerized.
I am attempting to run Selenium tests in the end-to-end test phase. To make this as portable as possible, I configured my tests to run inside a Docker container based on bitnami/java that communicates with another Docker container (selenium/standalone-chrome).
Unfortunately, the build environment doesn't have Docker installed, and it doesn't seem possible to enable it from the copilot configuration files. Is it possible to add the following to the generated buildspec.yml so that Docker is available in the end-to-end test environment?
phases:
install:
runtime-versions:
docker: 18
This is now released in https://github.com/aws/copilot-cli/releases/tag/v1.5.0! 馃殌
Most helpful comment
I am attempting to run Selenium tests in the end-to-end test phase. To make this as portable as possible, I configured my tests to run inside a Docker container based on bitnami/java that communicates with another Docker container (selenium/standalone-chrome).
Unfortunately, the build environment doesn't have Docker installed, and it doesn't seem possible to enable it from the copilot configuration files. Is it possible to add the following to the generated buildspec.yml so that Docker is available in the end-to-end test environment?