-
Notifications
You must be signed in to change notification settings - Fork 14
continuous integration
The reference architecture uses CircleCI for continuous integration and in support of continuous deployment. The CircleCI configuration files are located in the repository at ./circleci/config.yml
.
The CircleCI workflow feature allows us to create several jobs and chain them together in different configurations. There are three jobs defined in this CircleCI configuration file.
- build
- test_integration
- deploy_to_dockerhub
These jobs are chained together in four different workflows.
- buid_only
- build_test
- build_test_deploy
- build_deploy
This is the fundamental build job. It is somewhat of a misnomer in that it doesn't just build the source code. It also runs the unit tests. There are no jobs that build the source code without, at least, running the unit tests.
The build job is responsible for the following:
- Check out the source code
- Build the solution
- Run the unit tests
- Publish the Infrastructure.WebApi application
- Store the publish assets and the integration test source code in the newly defined workspace (temporary storage)
This job runs the integration tests. It is completely dependent on the build job as it expects the compiled source build artifacts to already be present in the workspace.
The test_integration job is responsible for the following:
- Attach to the workspace
- Run integration test project #1
- Build integration test project #1
- Execute integration test prject #1
- Run integration test project #n
This job publishes the docker Reference Architecture API docker image to the Docker Hub repository so that it can be used by downstream continuous deployment processes to deploy the application to various environments.
The deploy_to_dockerhub job is responsible for the following:
- Build docker image
- Tag docker image
- Log in to Docker Hub
- Push docker image to docker hub
Use this workflow to build the application and run unit tests.
Use this workflow to build the applicaton, run unit tests, and also run the integration tests.
Use this workflow to build the application, run the unit tests, run the integration tests, and also deploy the resultant docker image to Docker Hub.
Use this workflow to build the application, run the unit tests, and deploy the resultant docker image to Docker Hub.
This workflow is intended for the use case where it is okay to deploy the docker image without running the integration tests.