Locked learning resources

Join us and get access to thousands of tutorials and a community of expert Pythonistas.

Unlock This Lesson

Locked learning resources

This lesson is for members only. Join us and get access to thousands of tutorials and a community of expert Pythonistas.

Unlock This Lesson

Continuous Integration: Next Steps

In this last lesson of the course, you’ll get an outlook on what you can do with Continuous Integration (CI) to enhance your development flow even further. Furthermore, additional concepts building on top of CI are named:

Download

Sample Code (.zip)

2.8 KB

00:00 Well, this was a very high-level intro to CI. You now have an incredibly powerful tool to help you with your projects. CI incorporates a number of topics that we only skimmed over, so if you want to get deeper into it, here are some good next steps.

00:15 Each team usually has its own workflow with Git and how they incorporate code together. A common tool is adding in peer review, where other developers check code before it’s merged back into the master branch.

00:26 Check out the Real Python Advanced Git Tips for Python Developers if you’re looking to learn some new tricks. While we used the built-in venv environment manager, there are a number of package and environment managers available for Python developers. Popular options include Conda and Pipenv.

00:45 Conda is well known across the data science realm, as it includes a number of tools out of the box for analysis and visualization, while Pipenv is becoming more and more popular.

00:55 If you’d like to learn more about Pipenv, check out the Real Python guide on it below. For testing, we only covered the bare minimum of tests required to make the pipeline work.

01:06 There are so many aspects to testing code effectively, so take a look at the Getting Started with Testing guide if you want to take your skills to the next level.

01:15 A common final step in a CI pipeline is to create a deployable artifact, which is a finished, packaged unit of work that can be deployed to users or included in other projects.

01:26 This is a great precursor to continuous deployment or continuous delivery, which is the constant delivery of software to multiple stages of deployment. It ensures that new features are developed and sent to users as soon as they’re ready.

01:39 This is so often used with CI that you may be more familiar with the term CI/CD than just CI by itself.

01:47 There’s a link to a great site below explaining the benefits and strategies to CD. And that’s it! You should have a pretty good idea of how you can add continuous integration to your projects. It’s time to go try and set up your own pipelines for your projects and see all the cool things you can do with them. Thanks for watching.

Avatar image for Par Akerstrom

Par Akerstrom on June 16, 2019

Nice tutorial, very helpful! Who knew it could be this simple to get started :). Thanks @Joe Tatusko

Avatar image for Joe Tatusko

Joe Tatusko RP Team on June 18, 2019

Glad you liked it! Yeah, CI doesn’t have to be super complicated for smaller projects, and any amount can add significant value for you.

Avatar image for pmgraham

pmgraham on July 6, 2019

Awesome intro to CI. Thanks a lot! Really helpful. I’m a data engineer/Python developer relatively new to cloud platforms, and I’m working to setup a CI/CD pipeline for the data science team I support at work. This removed the “mystery” around CI and really helped me understand how this works. Thanks again!

Avatar image for prashant23

prashant23 on July 30, 2019

Hi Joe, thanks for the nice introduction to CicleCI. I am getting a build error using the exact same config.yml file. Do I need to update the file? I am getting the followine error.

Service alert: Your project references CircleCI 1.0 or it has no configuration. CircleCI 1.0 and projects without configuration files are no longer supported. You must update your project to use CircleCI 2.0 configuration to continue. Learn more.

I am not sure why it is not able to detect the config.yml file. Thanks

Avatar image for Joe Tatusko

Joe Tatusko RP Team on July 30, 2019

How is your directory structured? Your top level directory (the one that has your requirements.txt, README.md, test_calculator.py, etc) should have a folder called .circleci, which contains your config.yml file. Without this, it won’t be able to detect the file.

Once this is in there, also make sure that git is tracking the config.yml file, or it won’t be pushed.

Let me know if that helps!

Avatar image for prashant23

prashant23 on July 31, 2019

Thanks Joe. I think the directory structure had some problem. Now it is working.

Avatar image for Joe Tatusko

Joe Tatusko RP Team on Aug. 1, 2019

That’s great to hear! Thanks for the update :)

Avatar image for Harley Jean

Harley Jean on Sept. 8, 2019

Awesome short course. Perfect intro with practical take aways. Thanks!

Avatar image for adoormouse

adoormouse on Sept. 10, 2019

Thanks for this excellent tutorial!

Avatar image for Pakorn

Pakorn on Jan. 15, 2020

Super useful, Many Thanks!

Avatar image for vicky

vicky on March 5, 2020

interesting tutorial but I was not able to build the project in onboarding.circleci.com/. It created its own config file for some reason and could not find manage.py file.

Avatar image for mbonilla

mbonilla on April 24, 2020

Very cool tutorial. Thanks

Avatar image for Jon Scott

Jon Scott on Aug. 3, 2020

Really well done - thank you for the tutorial!

Avatar image for Kevin Lao

Kevin Lao on Aug. 14, 2020

I wanted to drop a thank you to introducing me to how to get started with CI.

Avatar image for sacsachin

sacsachin on Oct. 10, 2020

Simple and great!!!

Avatar image for Ghani

Ghani on Oct. 26, 2020

Great course; thanks!

Avatar image for Vasanth Baskaran

Vasanth Baskaran on Aug. 25, 2021

This is an brillant course for those who wanted to getting start into CI. Thanks Joe.

Avatar image for danP

danP on Nov. 14, 2021

Nice introductory course.

One small issue though , the last section mentions a couple links that are supposed to be in the description part, but have not been added.

Avatar image for Martin Breuss

Martin Breuss RP Team on Nov. 15, 2021

Thanks for flagging this @danP, I’ve added the links that Joe mentioned to the description.

Avatar image for JBrooks

JBrooks on June 3, 2022

Thanks for “deep enough” intro to CI. CI is not part of my day job but I have to learn the workflow to do my day job which is cyber security. The more I learn about this workflow, with a little bit of hands-on, the more comfortable I will be when talking with developers and knowing how/where to to apply security controls.

Glad there wasn’t a test at the end of this course or I would have bombed it. I managed to get through the content with a bit of trial and errors but it worked out. I didn’t try the extra credit stuff because I’m still learning python too but I did learn a lot and it gave me intro-level instruction I needed. Thanks a bunch!

Avatar image for James

James on April 22, 2023

The quick and practical overview I needed. Very useful thank you.

Avatar image for Zagir

Zagir on Feb. 16, 2024

Thank you for the great overview. I run into some issues with dependencies. In the circleci/config.yml file is better to change circleci to cimg.

circleci/python:3.7 → cimg/python:3.7

This worked for me:

version: 2
jobs:
  build:
    docker:
      - image: cimg/python:3.10.12

More about it here.

Become a Member to join the conversation.