CI tests are developed using Python and Tavern.
The following environment variables must be set for the CI tests to run:
ENVIRONMENT
(optional; if notprod
, same as allowed in platform)AWS_REGION
(optional; if notprod
, set to AWS S3 region)PROJECT_APP_HOST
(optional; if notprod
, same as chosen in platform for afrontend
environment)PROJECT_API_HOST
(optional; if notprod
, same as chosen in platform for aplatform
API environment)PLATFORM_TWILIO_ACCOUNT_SID
(same as used in platform worker to send texts)PLATFORM_TWILIO_AUTH_TOKEN
(same as used in platform worker to send texts)CI_AWS_S3_ACCESS_KEY_ID
(same as used in platform web to upload attachments)CI_AWS_S3_SECRET_ACCESS_KEY
(same as used in platform web to upload attachments)CI_TWILIO_RECIPIENT_PHONE_NUMBER
(a phone number to which test texts will be sent)
These CI tests require heliumedu-ci-test@heliumedu.dev
to be setup to receive emails and store them in an S3
bucket, as documented here.
The Terraform for prod
can be
applied to configure this.
Once the above is done, the CI tests can be run with:
make test
These tests can be run locally against Docker to make development easier. The easiest way to achieve this is to use
the deploy
project to setup the entire Helium
stack locally. An Internet connection is still necessary to validate all end-to-end functionality (emails use
AWS SES, text messages use Twilio). The minimal Terraform for dev-local
can be applied to configure these services.
Once the above is done, the CI tests can be run locally with:
make test-local