README.md 2.02 KB
Newer Older
ethiraj krishnamanaidu's avatar
ethiraj krishnamanaidu committed
1
2
# OSDU CI/CD Pipeline Overview

David Diederich's avatar
David Diederich committed
3
Find the most recent documentation build [here](http://osdu.pages.community.opengroup.org/platform/ci-cd-pipelines/)
4

ethiraj krishnamanaidu's avatar
ethiraj krishnamanaidu committed
5
A common place for shared CI/CD Pipeline files, for use will all OSDU projects.
ethiraj krishnamanaidu's avatar
ethiraj krishnamanaidu committed
6
7


David Diederich's avatar
David Diederich committed
8
[The OSDU Platform project](https://community.opengroup.org/osdu/platform) (including sub-projects) makes use of [GitLab's built-in CI/CD capabilities](https://docs.gitlab.com/ee/ci/introduction/) to provide a CI/CD pipeline that runs automatically on commits to the project. The stages in the pipeline include:
ethiraj krishnamanaidu's avatar
ethiraj krishnamanaidu committed
9
10
11
12
13
14
15

- Security scanning for known vulnerabilities (CVEs)
- Scanning for use of approved Licenses in submitted code and dependencies
- Correct attribution of the submitted material
- Unit tests
- Integration tests

16
## Common Practices / Definitions
ethiraj krishnamanaidu's avatar
ethiraj krishnamanaidu committed
17

ethiraj krishnamanaidu's avatar
ethiraj krishnamanaidu committed
18
19
**Continuous Integration**
* Developers merge/integrate the code to Master as soon as developer made a progress on the feature. Usually everyone commits to the Master every day.
ethiraj krishnamanaidu's avatar
ethiraj krishnamanaidu committed
20
* Continuous Integration assumes a high degree of tests which are automated into the software. we have good automated testing coverage as we progress we need to add more test cases.
David Diederich's avatar
David Diederich committed
21
* Continuous Integration refers to Integrating code, building and testing code (Unit and Integration tests) within the development environment.
ethiraj krishnamanaidu's avatar
ethiraj krishnamanaidu committed
22
23
24

**Continuous Delivery**

David Diederich's avatar
David Diederich committed
25
* Continuous Delivery means that you are able to do frequent deployments to a testing environment and/or production environment but may choose not to do it, due to various reasons (Ex: businesses not ready or OSDU applicatiions not ready)
ethiraj krishnamanaidu's avatar
ethiraj krishnamanaidu committed
26
27
28

**Continuous Deployment**

David Diederich's avatar
David Diederich committed
29
* Continuous Deployment means that every change goes through the pipeline and automatically (No manual approval) gets put into production, resulting in many production deployments every day.
ethiraj krishnamanaidu's avatar
ethiraj krishnamanaidu committed
30
31


32
## A graphical overview of the CI/CD Pipeline:
ethiraj krishnamanaidu's avatar
ethiraj krishnamanaidu committed
33

David Diederich's avatar
David Diederich committed
34
**Continuous Delivery is not ready and its just an idea for now but we will have to figure out how & where to run UAT and Performance tests.**
ethiraj krishnamanaidu's avatar
ethiraj krishnamanaidu committed
35

David Diederich's avatar
David Diederich committed
36
**Continuous Deployment might not be applicable for OSDU.**
ethiraj krishnamanaidu's avatar
ethiraj krishnamanaidu committed
37

David Diederich's avatar
David Diederich committed
38
![alt text](CD1.jpg "CI/CD Pipeline")