Skip to content

Latest commit

 

History

History
37 lines (28 loc) · 2.48 KB

make_targets.md

File metadata and controls

37 lines (28 loc) · 2.48 KB

Make targets

Project-level targets

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.

Service-level target

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.

Environment variables

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.