This technical solution paper provides a real world example of how CI/CD can be integrated with HERE platform.
You can integrate HERE platform (platform) with a Continuous Integration (CI) system to detect integration errors as quickly as possible, improve quality, and reduce software lead time.
You can also integrate platform with a Continuous Delivery (CD) system to automatically build, test, and package artifacts for production release based on code changes.
To implement these CI/CD instructions, you need the following:
- Familiarity with CI/CD concepts
- A platform account
- Credentials that allow you to create groups and familiarity with account management in the platform
- Familiarity with the SDK and basic concepts used in developing pipelines
- Familiarity with OLP CLI
CI and CD can be seen as a pipeline where the code is the input. This input gets tested across a series of steps that usually include automated build and testing as well as validation on testing environments (often known as Staging). When the tests complete successfully, the code is published as ready for production.
The image below illustrates this principle.
The steps described above are suggestions and can be adapted and extended based on different needs. For instance, some steps can be repeated for different kinds of validation, or multiple times at different levels, or have multiple testing environments to parallelize long running tests. All these different testing structures always need to test the same code/artifact, and must be immutable from the first build until the end of the validation. Building a CI/CD implementation is in itself a continuous improvement process that matures step by step.
- Unit tests verify the smallest testable units of software: they are self-contained.
- Component integration tests verify integration between larger components of the software. In this document, we assume that they don't access remote services.
- System integration tests verify delivered software on a system level, including integration with remote services like the HERE platform.
- Product acceptance tests use prepared test data, and produce and verify a complete output from a tested application. They are executed in the platform pipelines.
- Deployment is a complete set of data and actions required to deploy and run an application as a pipeline in the platform.