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:
- Advanced Git Tips for Python Developers
- Pipenv: A Guide to the New Python Packaging Tool
- Getting Started With Testing in Python
- Continuous Delivery
Congratulations, you made it to the end of the course! What’s your #1 takeaway or favorite thing you learned? How are you going to put your newfound skills to use? Leave a comment in the discussion section and let us know.
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.
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.
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!
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
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!
prashant23 on July 31, 2019
Thanks Joe. I think the directory structure had some problem. Now it is working.
Joe Tatusko RP Team on Aug. 1, 2019
That’s great to hear! Thanks for the update :)
Harley Jean on Sept. 8, 2019
Awesome short course. Perfect intro with practical take aways. Thanks!
adoormouse on Sept. 10, 2019
Thanks for this excellent tutorial!
Pakorn on Jan. 15, 2020
Super useful, Many Thanks!
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.
mbonilla on April 24, 2020
Very cool tutorial. Thanks
Jon Scott on Aug. 3, 2020
Really well done - thank you for the tutorial!
Kevin Lao on Aug. 14, 2020
I wanted to drop a thank you to introducing me to how to get started with CI.
sacsachin on Oct. 10, 2020
Simple and great!!!
Ghani on Oct. 26, 2020
Great course; thanks!
Vasanth Baskaran on Aug. 25, 2021
This is an brillant course for those who wanted to getting start into CI. Thanks Joe.
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.
Martin Breuss RP Team on Nov. 15, 2021
Thanks for flagging this @danP, I’ve added the links that Joe mentioned to the description.
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!
James on April 22, 2023
The quick and practical overview I needed. Very useful thank you.
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.
Par Akerstrom on June 16, 2019
Nice tutorial, very helpful! Who knew it could be this simple to get started :). Thanks @Joe Tatusko