Skip to content

Commit 65564a5

Browse files
committed
new CI resource
1 parent 4543114 commit 65564a5

3 files changed

Lines changed: 131 additions & 95 deletions

File tree

all.html

Lines changed: 43 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -7128,28 +7128,32 @@ <h2>Application dependencies learning checklist</h2>
71287128
</li>
71297129
</ol>
71307130
<h1>Continuous Integration</h1>
7131-
<p>Continuous integration automates the building, testing and deploying of applications.
7132-
Software projects, whether created by a single individual or entire teams, typically
7133-
use continuous integration as a hub to ensure important steps such as unit testing
7134-
are automated rather than manual processes.</p>
7131+
<p>Continuous integration automates the building, testing and deploying of
7132+
applications. Software projects, whether created by a single individual or
7133+
entire teams, typically use continuous integration as a hub to ensure
7134+
important steps such as unit testing are automated rather than manual
7135+
processes.</p>
71357136
<h2>Why is continuous integration important?</h2>
7136-
<p>When continuous integration (CI) is established as a step in a software project's
7137-
development process it can dramatically reduce deployment times by minimizing steps
7138-
that require human intervention. The only minor downside to using CI is that it
7139-
takes some initial time by a developer to set up and then there is some ongoing
7140-
maintainence if a project is broken into multiple parts, such as going from a
7141-
monolith architecture to <a href="/microservices.html">microservices</a>.</p>
7137+
<p>When continuous integration (CI) is established as a step in a software
7138+
project's development process it can dramatically reduce deployment times
7139+
by minimizing steps that require human intervention. The only minor downside
7140+
to using CI is that it takes some initial time by a developer to set up and
7141+
then there is some ongoing maintainence if a project is broken into multiple
7142+
parts, such as going from a monolith architecture to
7143+
<a href="/microservices.html">microservices</a>.</p>
71427144
<h2>Automated testing</h2>
7143-
<p>Another major advantage with CI is that testing can be an automated step in the
7144-
deployment process. Broken deployments can be prevented by running a comprehensive
7145-
test suite of <a href="/unit-testing.html">unit</a> and
7146-
<a href="/integration-testing.html">integration tests</a> when developers check in code to a
7147-
source code repository. Any bugs accidentally introduced during a check-in that are
7148-
caught by the test suite are reported and prevent the deployment from proceeding.</p>
7149-
<p>The automated testing on checked in source code can be thought of like the bumper
7150-
guards in bowling that prevent code quality from going too far off track.
7151-
CI combined with unit and integration tests check that any code modifications
7152-
do not break existing tests to ensure the software works as intended.</p>
7145+
<p>Another major advantage with CI is that testing can be an automated step in
7146+
the deployment process. Broken deployments can be prevented by running a
7147+
comprehensive test suite of <a href="/unit-testing.html">unit</a> and
7148+
<a href="/integration-testing.html">integration tests</a> when developers check in code
7149+
to a source code repository. Any bugs accidentally introduced during a
7150+
check-in that are caught by the test suite are reported and prevent the
7151+
deployment from proceeding.</p>
7152+
<p>The automated testing on checked in source code can be thought of like the
7153+
bumper guards in bowling that prevent code quality from going too far off
7154+
track. CI combined with unit and integration tests check that any code
7155+
modifications do not break existing tests to ensure the software works as
7156+
intended.</p>
71537157
<h2>Continuous integration example</h2>
71547158
<p>The following picture represents a high level perspective on how continuous
71557159
integration and deployment can work. </p>
@@ -7210,19 +7214,19 @@ <h2>Jenkins CI resources</h2>
72107214
<a href="/django.html">Django</a> project.</p>
72117215
</li>
72127216
<li>
7213-
<p>My book on <a href="http://www.deploypython.com/">deploying Python web applications</a> walks
7214-
through every step of setting up a Jenkins project with a WSGI application to
7215-
enable continuous delivery. Take a look if you're not grokking all of the steps
7216-
provided in these other blog posts.</p>
7217+
<p>My book on <a href="http://www.deploypython.com/">deploying Python web applications</a>
7218+
walks through every step of setting up a Jenkins project with a WSGI
7219+
application to enable continuous delivery. Take a look if you're not
7220+
grokking all of the steps provided in these other blog posts.</p>
72177221
</li>
72187222
<li>
72197223
<p><a href="http://michal.karzynski.pl/blog/2014/04/19/continuous-integration-server-for-django-using-jenkins/">Setting up Jenkins as a continuous integration server for Django</a>
7220-
is another solid tutorial that also shows how to send email notifications as part
7221-
of the build process.</p>
7224+
is another solid tutorial that also shows how to send email notifications
7225+
as part of the build process.</p>
72227226
</li>
72237227
<li>
7224-
<p>If you're running into difficulty adding an SSH key to your Jenkins system account
7225-
so you can connect to another server or Git repository
7228+
<p>If you're running into difficulty adding an SSH key to your Jenkins system
7229+
account so you can connect to another server or Git repository
72267230
<a href="http://dcycleproject.org/blog/51/connecting-jenkins-and-git">this blog post on connecting Jenkins with Git</a>
72277231
to get the steps to solve that problem.</p>
72287232
</li>
@@ -7242,9 +7246,9 @@ <h2>Jenkins CI resources</h2>
72427246
</li>
72437247
<li>
72447248
<p><a href="http://engineering.simondata.com/can-we-use-jenkins-for-that/">Can we use Jenkins for that?</a>
7245-
looks at how one team uses Jenkins for more than typical continuous integration
7246-
situations - they also use it as an administrative interface, cron jobs, data
7247-
analytics pipelines and long-running scripts.</p>
7249+
looks at how one team uses Jenkins for more than typical continuous
7250+
integration situations - they also use it as an administrative interface,
7251+
cron jobs, data analytics pipelines and long-running scripts.</p>
72487252
</li>
72497253
</ul>
72507254
<h2>General continuous integration resources</h2>
@@ -7282,6 +7286,14 @@ <h2>General continuous integration resources</h2>
72827286
is an example walking through one potential way to use the Teamcity CI
72837287
server for automated deployments.</p>
72847288
</li>
7289+
<li>
7290+
<p><a href="https://blog.codeship.com/continuous-integration-important/">Why Continuous Integration Is Important</a>
7291+
is a high-level overview of how CI can build trust both among developers
7292+
and between developers and non-technical people in an organization. The
7293+
post also discusses tasks related to setting up reliable CI such as test
7294+
environments, <a href="/integration-testing.html">integration testing</a> and
7295+
visibility into the CI results.</p>
7296+
</li>
72857297
</ul>
72867298
<h1>Logging</h1>
72877299
<p>Logging saves output such as errors, warnings and event information to

continuous-integration.html

Lines changed: 44 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<meta http-equiv="X-UA-Compatible" content="IE=edge">
77
<meta name="viewport" content="width=device-width, initial-scale=1.0">
88
<meta name="author" content="Matt Makai">
9-
<meta name="description" content="Continuous integration automatically rebuilds and deploys applications as developers commit code. Learn more on Full Stack Python.">
9+
<meta name="description" content="Continuous integration (CI) automatically rebuilds, tests and deploys applications as developers commit code.">
1010
<link rel="shortcut icon" href="/img/fsp-fav.png">
1111
<title>Continuous Integration - Full Stack Python</title>
1212
<!--[if lt IE 9]>
@@ -41,28 +41,32 @@
4141
</div><div class="row">
4242
<div class="col-md-8">
4343
<h1>Continuous Integration</h1>
44-
<p>Continuous integration automates the building, testing and deploying of applications.
45-
Software projects, whether created by a single individual or entire teams, typically
46-
use continuous integration as a hub to ensure important steps such as unit testing
47-
are automated rather than manual processes.</p>
44+
<p>Continuous integration automates the building, testing and deploying of
45+
applications. Software projects, whether created by a single individual or
46+
entire teams, typically use continuous integration as a hub to ensure
47+
important steps such as unit testing are automated rather than manual
48+
processes.</p>
4849
<h2>Why is continuous integration important?</h2>
49-
<p>When continuous integration (CI) is established as a step in a software project's
50-
development process it can dramatically reduce deployment times by minimizing steps
51-
that require human intervention. The only minor downside to using CI is that it
52-
takes some initial time by a developer to set up and then there is some ongoing
53-
maintainence if a project is broken into multiple parts, such as going from a
54-
monolith architecture to <a href="/microservices.html">microservices</a>.</p>
50+
<p>When continuous integration (CI) is established as a step in a software
51+
project's development process it can dramatically reduce deployment times
52+
by minimizing steps that require human intervention. The only minor downside
53+
to using CI is that it takes some initial time by a developer to set up and
54+
then there is some ongoing maintainence if a project is broken into multiple
55+
parts, such as going from a monolith architecture to
56+
<a href="/microservices.html">microservices</a>.</p>
5557
<h2>Automated testing</h2>
56-
<p>Another major advantage with CI is that testing can be an automated step in the
57-
deployment process. Broken deployments can be prevented by running a comprehensive
58-
test suite of <a href="/unit-testing.html">unit</a> and
59-
<a href="/integration-testing.html">integration tests</a> when developers check in code to a
60-
source code repository. Any bugs accidentally introduced during a check-in that are
61-
caught by the test suite are reported and prevent the deployment from proceeding.</p>
62-
<p>The automated testing on checked in source code can be thought of like the bumper
63-
guards in bowling that prevent code quality from going too far off track.
64-
CI combined with unit and integration tests check that any code modifications
65-
do not break existing tests to ensure the software works as intended.</p>
58+
<p>Another major advantage with CI is that testing can be an automated step in
59+
the deployment process. Broken deployments can be prevented by running a
60+
comprehensive test suite of <a href="/unit-testing.html">unit</a> and
61+
<a href="/integration-testing.html">integration tests</a> when developers check in code
62+
to a source code repository. Any bugs accidentally introduced during a
63+
check-in that are caught by the test suite are reported and prevent the
64+
deployment from proceeding.</p>
65+
<p>The automated testing on checked in source code can be thought of like the
66+
bumper guards in bowling that prevent code quality from going too far off
67+
track. CI combined with unit and integration tests check that any code
68+
modifications do not break existing tests to ensure the software works as
69+
intended.</p>
6670
<h2>Continuous integration example</h2>
6771
<p>The following picture represents a high level perspective on how continuous
6872
integration and deployment can work. </p>
@@ -123,19 +127,19 @@ <h2>Jenkins CI resources</h2>
123127
<a href="/django.html">Django</a> project.</p>
124128
</li>
125129
<li>
126-
<p>My book on <a href="http://www.deploypython.com/">deploying Python web applications</a> walks
127-
through every step of setting up a Jenkins project with a WSGI application to
128-
enable continuous delivery. Take a look if you're not grokking all of the steps
129-
provided in these other blog posts.</p>
130+
<p>My book on <a href="http://www.deploypython.com/">deploying Python web applications</a>
131+
walks through every step of setting up a Jenkins project with a WSGI
132+
application to enable continuous delivery. Take a look if you're not
133+
grokking all of the steps provided in these other blog posts.</p>
130134
</li>
131135
<li>
132136
<p><a href="http://michal.karzynski.pl/blog/2014/04/19/continuous-integration-server-for-django-using-jenkins/">Setting up Jenkins as a continuous integration server for Django</a>
133-
is another solid tutorial that also shows how to send email notifications as part
134-
of the build process.</p>
137+
is another solid tutorial that also shows how to send email notifications
138+
as part of the build process.</p>
135139
</li>
136140
<li>
137-
<p>If you're running into difficulty adding an SSH key to your Jenkins system account
138-
so you can connect to another server or Git repository
141+
<p>If you're running into difficulty adding an SSH key to your Jenkins system
142+
account so you can connect to another server or Git repository
139143
<a href="http://dcycleproject.org/blog/51/connecting-jenkins-and-git">this blog post on connecting Jenkins with Git</a>
140144
to get the steps to solve that problem.</p>
141145
</li>
@@ -155,9 +159,9 @@ <h2>Jenkins CI resources</h2>
155159
</li>
156160
<li>
157161
<p><a href="http://engineering.simondata.com/can-we-use-jenkins-for-that/">Can we use Jenkins for that?</a>
158-
looks at how one team uses Jenkins for more than typical continuous integration
159-
situations - they also use it as an administrative interface, cron jobs, data
160-
analytics pipelines and long-running scripts.</p>
162+
looks at how one team uses Jenkins for more than typical continuous
163+
integration situations - they also use it as an administrative interface,
164+
cron jobs, data analytics pipelines and long-running scripts.</p>
161165
</li>
162166
</ul>
163167
<h2>General continuous integration resources</h2>
@@ -195,6 +199,14 @@ <h2>General continuous integration resources</h2>
195199
is an example walking through one potential way to use the Teamcity CI
196200
server for automated deployments.</p>
197201
</li>
202+
<li>
203+
<p><a href="https://blog.codeship.com/continuous-integration-important/">Why Continuous Integration Is Important</a>
204+
is a high-level overview of how CI can build trust both among developers
205+
and between developers and non-technical people in an organization. The
206+
post also discusses tasks related to setting up reliable CI such as test
207+
environments, <a href="/integration-testing.html">integration testing</a> and
208+
visibility into the CI results.</p>
209+
</li>
198210
</ul>
199211
<h3>What do you want to work on next for your deployment?</h3>
200212
<div class="row">

0 commit comments

Comments
 (0)