These targets are part of the Makefile at the root of this repository.
- all-$SERVICE: Lint, build, run unit tests, package, deploy and run integration test for a specific service. You can also run
make all
to run this command against all services. - ci-$SERVICE: Lint, build and run unit tests for a specific service. You can also run
make ci
to run this command against all services. - tests-e2e: Run end-to-end tests using public APIs to validate that the entire platform works as expected.
- validate: Check if the necessary tools are installed.
- setup: Configure the development environment.
- activate: Activate the pyenv virtual environment for Python.
- requirements: Install python dependencies for this project.
- npm-install: Install node dependencies for this project.
- bootstrap-pipeline: Setup all three environments (tests, staging and prod) and the CI/CD pipeline to deploy to production. This also initializes a git repository on AWS CodeCommit that will be used to trigger the pipeline.
These targets should be defined in the Makefile of each individual service. You can run the target by running make $TARGET-$SERVICE
in the root of this project, or make $TARGET
to run it against all services, e.g. make tests-unit-all
.
- artifacts: Create a zip file containing the template and artifacts for the CI/CD pipeline.
- build: Build the resources to deploy the service, such as Lambda functions, OpenAPI specification, CloudFormation templates, etc.
- check-deps: Checks if the dependencies of this service are deployed in the target environment.
- clean: Remove the build artifacts for the service.
- deploy: Deploy/update the service on AWS, usually create/update the CloudFormation stack.
- lint: Run linting checks on source code, CloudFormation template, etc.
- package: Package and store artifacts in an S3 bucket in preparation for deployment.
- teardown: Tear down resources for that services on AWS, usually delete the CloudFormation stack.
- tests-integ: Run integration tests against resources deployed on AWS.
- tests-unit: Run unit tests locally.
You can tweak some of the behaviour by using the following environment variables.
- ENVIRONMENT: The target environment on AWS on which you want to deploy resources or run integration tests. This default to
dev
.