Commit 4335c99beaac5c639ccbba05dd15d043f0fdb1f9
Exists in
master
and in
3 other branches
Merge branch 'master' of softwarepublico.gov.br:softwarepublico/articles
Showing
1 changed file
with
23 additions
and
20 deletions
Show diff stats
ieeeSW/releaseEng3/IEEE_ThemeIssue_ReleaseEng_CD.md
@@ -106,9 +106,10 @@ worst political crisis after the re-democratization in Brazil. | @@ -106,9 +106,10 @@ worst political crisis after the re-democratization in Brazil. | ||
106 | 106 | ||
107 |  | 107 |  |
108 | 108 | ||
109 | -Figure X represents our CD pipeline. After each release, we have defined a set | ||
110 | -of features we would develop to comply with government’s requirements and then | ||
111 | -we have followed this pipeline. | 109 | +The figure represents our CD pipeline: each release starts with specific |
110 | +requirements which are refined and improved during development as they go | ||
111 | +through each one of the steps until finally reach the production environment. | ||
112 | +At this point a new set of requirements is built and a new release starts. | ||
112 | 113 | ||
113 | ### Automated tests | 114 | ### Automated tests |
114 | 115 | ||
@@ -116,30 +117,32 @@ we have followed this pipeline. | @@ -116,30 +117,32 @@ we have followed this pipeline. | ||
116 | [//]: # (TODO - Adicionar que as mudanças no Colab quebravam todos os plugins.) | 117 | [//]: # (TODO - Adicionar que as mudanças no Colab quebravam todos os plugins.) |
117 | [//]: # (https://www.linux.com/blog/learn/chapter/dev-ops/2017/7/devops-fundamentals-part-3-continuous-delivery-and-deployment) | 118 | [//]: # (https://www.linux.com/blog/learn/chapter/dev-ops/2017/7/devops-fundamentals-part-3-continuous-delivery-and-deployment) |
118 | 119 | ||
119 | -The SPB portal is composed of a set of FOSS systems. All of them have their own | ||
120 | -automated test suite. So, we encouraged the teams to keep unit tests coverage | ||
121 | -high for each system. We implemented the systems integration using a plugin | ||
122 | -architecture and wrote integration tests to check if they were working | ||
123 | -properly. The plugin architecture made the PSPB’s components decoupled. That | ||
124 | -allowed us to be confident that changes on one system would not affect others. | ||
125 | -This characteristic allowed the test execution of only the component with | ||
126 | -changes instead of the entire system. | 120 | +Each one of the Portal's software components had their own test suite which |
121 | +the development teams were required to maintain and expand if possible. The | ||
122 | +integration of all these software was based on a plugin architecture and, | ||
123 | +again, each plugin with its test suite to ensure this level of the platform | ||
124 | +stability. | ||
127 | 125 | ||
128 | -Our CD’s first step was to execute each system’s automated test suite. If any | ||
129 | -error was found, the pipeline stopped and the developers were notified. Only | ||
130 | -after all tests passed we move to preparing the release. Preparing a new | ||
131 | -release | 126 | +This two-level testing approach provided us the necessary speed and |
127 | +the trust that each software and the whole platform stability. By first running | ||
128 | +the software specific test suite we checked its stability and, if there was any | ||
129 | +errors, the developers were warned and the execution of the plugins test suite | ||
130 | +was not started. | ||
131 | + | ||
132 | +Only after all tests passed we move to the next step down the pipeline. | ||
133 | + | ||
134 | +### Preparing a new release | ||
132 | 135 | ||
133 | Our release system was divided into two perspectives: the application and the | 136 | Our release system was divided into two perspectives: the application and the |
134 | -PSPB. The application tag refers to the specific feature or bug fix and is a | ||
135 | -monotonically increasing. A new tag on any system yielded a new PSPB tag. | 137 | +SPB Portal. The application tag refers to the specific feature or bug fix and is a |
138 | +monotonically increasing. A new tag on any system yielded a new SPB Portal tag. | ||
136 | 139 | ||
137 | When all tests passed for a given component, we manually created a new | 140 | When all tests passed for a given component, we manually created a new |
138 | application tag for it. As a consequence, that automatically created a new tag | 141 | application tag for it. As a consequence, that automatically created a new tag |
139 | -for the PSPB. Notice that we have forks of the original softwares and, as | 142 | +for the SPB Portal. Notice that we have forks of the original softwares and, as |
140 | consequence, we had different tag values. Packaging | 143 | consequence, we had different tag values. Packaging |
141 | 144 | ||
142 | -The PSPB platform is running under the CentOS GNU/Linux distribution. | 145 | +The SPB Portal platform is running under the CentOS GNU/Linux distribution. |
143 | Basically, packaging a software for that distribution has three steps: (1) | 146 | Basically, packaging a software for that distribution has three steps: (1) |
144 | write the script for the specific environment (RPM), (2) build the package, and | 147 | write the script for the specific environment (RPM), (2) build the package, and |
145 | (3) upload it to a package repository. We chose to package our components for | 148 | (3) upload it to a package repository. We chose to package our components for |
@@ -177,7 +180,7 @@ The VE was used by the government agents to validate new features and required | @@ -177,7 +180,7 @@ The VE was used by the government agents to validate new features and required | ||
177 | changes. Also, the VE was useful to verify the integrity of the entire portal | 180 | changes. Also, the VE was useful to verify the integrity of the entire portal |
178 | as part of the next step in the pipeline. Acceptance Tests | 181 | as part of the next step in the pipeline. Acceptance Tests |
179 | 182 | ||
180 | -After we completely deploy a new PSPB version in the VE, the government agents | 183 | +After we completely deploy a new SPB Portal version in the VE, the government agents |
181 | are responsible for checking features and/or bug fixes required by them. If the | 184 | are responsible for checking features and/or bug fixes required by them. If the |
182 | technicians identify a problem, they notify the developers, the problems are | 185 | technicians identify a problem, they notify the developers, the problems are |
183 | fixed and the pipeline restarts from scratch. If everything is validated, we | 186 | fixed and the pipeline restarts from scratch. If everything is validated, we |