- Hands-On Docker for Microservices with Python
- Jaime Buelta
- 455字
- 2021-06-24 12:35:58
Producing automated builds
The core element in CI is generating automated builds integrated with a source control system. A software build is a process that (starting from the source code) performs a series of actions and produces an output. If the project is written in a compiled language, the output will typically be the compiled program.
If we want to have quality software, then part of the build involves checking that the produced code follows code standards. If the code doesn't follow those standards, then the build will return an error.
Some examples of steps that can be a part of the build are as follows:
- Compiling the code.
- Running unit tests
- Running static code analysis tools
- Building one or more containers
- Checking dependencies for known vulnerabilities with a tool such as Safety (https://pyup.io/safety/)
- Generating a binary or source package for distribution. For example, RPM (https://rpm.org/), Debian packages (https://www.debian.org/doc/manuals/debian-faq/ch-pkg_basics), and so on
- Running other kinds of tests
- Generating reports, diagrams, or other assets from the code
Anything that can run automatically can be a part of a build. A local build can be generated at any time, even with code that's still in progress. This is important for debugging and solving issues. But automated builds will run against each individual commit, and not at any intermediate stage. This makes it very explicit to check what code is expected to run in production and what code is still work in progress.
Running the build for each commit detects problems very quickly. If commits are small, a breaking change is easy to pinpoint. It also makes it easy to revert changes that break the build and go back to known working code.
- 電子政務(wù)效益的經(jīng)濟(jì)分析與評價(jià)
- Django 2 by Example
- Hands-On Chatbot Development with Alexa Skills and Amazon Lex
- 物聯(lián)網(wǎng)關(guān)鍵技術(shù)及應(yīng)用
- Go Web Scraping Quick Start Guide
- 世界互聯(lián)網(wǎng)發(fā)展報(bào)告·2019
- 智慧光網(wǎng)絡(luò):關(guān)鍵技術(shù)、應(yīng)用實(shí)踐和未來演進(jìn)
- Kong網(wǎng)關(guān):入門、實(shí)戰(zhàn)與進(jìn)階
- 物聯(lián)網(wǎng)場景設(shè)計(jì)與開發(fā)(初級)
- 從實(shí)踐中學(xué)習(xí)手機(jī)抓包與數(shù)據(jù)分析
- 園區(qū)網(wǎng)絡(luò)架構(gòu)與技術(shù)
- 小型局域網(wǎng)組建
- 通信系統(tǒng)實(shí)戰(zhàn)筆記:無處不在的信號處理
- 走近2050:注意力、互聯(lián)網(wǎng)與人工智能
- 網(wǎng)絡(luò)分析技術(shù)揭秘:原理、實(shí)踐與WinPcap深入解析