blog.itcode.devblog.itcode.dev

[GitHub Actions] Rest in Peace, Manual Deployment — GitHub Actions Has Arrived - 1. CI/CD

A single piece of software goes through many stages before it's finished. Depending on the scale of the program, it requires more manpower, more processes, and more scheduling. But regardless of the program, the result always comes down to one thing: build and deployment. Mere text and assets are turned into a single program through the build process, and made usable to people through deployment. That's the goal of every program. Accordingly, the importance of build and deployment is also very significant. And in line with that, build/deploy is never an easy task. The larger a program gets, the more time it takes, and then some.

[GitHub Actions] Rest in Peace, Manual Deployment — GitHub Actions Has Arrived - 1. CI/CD

A single piece of software goes through many stages before it's finished. Depending on the scale of the program, it requires more manpower, more processes, and more scheduling. But regardless of the program, the result always comes down to one thing: build and deployment. Mere text and assets are turned into a single program through the build process, and made usable to people through deployment. That's the goal of every program. Accordingly, the importance of build and deployment is also very significant. And in line with that, build/deploy is never an easy task. The larger a program gets, the more time it takes, and then some.
RWB0104
@RWBwritten at 2023-09-27 18:54:54
Rest in Peace, Manual Deployment — GitHub Actions Has Arrived

시리즈 모아보기

Rest in Peace, Manual Deployment — GitHub Actions Has Arrived

1 / 5

A single piece of software goes through many stages before it's finished. Depending on the scale of the program, it requires more manpower, more processes, and more scheduling.

But regardless of the program, the result always comes down to one thing: build and deployment. Mere text and assets are turned into a single program through the build process, and made usable to people through deployment. That's the goal of every program. Accordingly, the importance of build and deployment is also very significant.

And in line with that, build/deploy is never an easy task. The larger a program gets, the more time it takes, and then some.


Surely someone out there is thinking, "Isn't there anyone who can handle this tedious work for me?" I just want to focus purely on development — can't we hire someone for this...

🖼️ A common developer's lament

For those of you thinking this, I have good news and bad news.

The good news is that the company strongly agrees with your thinking and has decided to hire someone.

The bad news is that person is you.

🖼️ Automation...?

Actually, if you think about it, in a normal situation there isn't much for a developer to actively do in real time while a build or deployment is running. Since everything happens on a computer, that means it's extremely convenient to automate.

This concept of automating build/deploy is called CI/CD. Each term refers to build and deployment, respectively.

To describe CI in one sentence, it means automatically building/testing and integrating code whenever a change is detected in the program's code.

Building a continuous integration pipeline brings the following benefits.

  • Prevents code conflicts that can occur when multiple developers work on the same service
  • Provides a consistent development environment foundation across any environment
  • Makes it easy to apply a common integration pipeline to secure code stability

If you've used Git or SVN, which are commonly used, you already have experience with CI.

CD uniquely has two meanings. One of them is continuous delivery, the topic of this section.

To describe continuous delivery in one sentence, it means releasing code that has passed through and been verified by the CI pipeline to a repository.

For continuous delivery to fully realize its purpose, a CI pipeline needs to already be in place beforehand. If the CI pipeline is lacking, or the level of code verification is low, there's a high chance it leads to a decline in the quality of the deployed code.

Building a continuous delivery pipeline brings the following benefits.

  • Strengthens the stability of code targeted for deployment
  • Reduces the cost of releasing to the repository

The "release cost" mentioned here doesn't refer to money, but to the tangible/intangible effort involved, such as labor cost and schedule, incurred by the task.

There's also another CD: continuous deployment. Continuous deployment means automatically releasing code targeted for release to create a single production build. In other words, it's about creating the actual program.

Developing something and deploying it as a program are two entirely different matters. Mistakes made during development can be fixed appropriately whenever needed, but mistakes in a deployed program are difficult or impossible to fix.

Bugs and unfinished work that appear in a deployed program can undermine trust in the program, and by extension, the entity developing it. In other words, the reliability of the earlier CI/CD (delivery) pipeline is extremely important.

A continuous deployment pipeline brings the following benefits.

  • Fast and simple production deployment
  • Saves developers unnecessary effort

Once a reliable CI/CD pipeline is established, it's no longer unreasonable to deploy high-quality programs quickly and easily.

The time and computing resources spent on build and deployment are handed off to the CI/CD server, and developers can focus entirely on development, so an improvement in development efficiency can be expected.

This post covered CI/CD, the concept of automating build and deployment.

The idea of automation might sound like it has a high barrier to entry, but there are actually a wide variety of services and solutions available for building a CI/CD environment. Jenkins, GitHub, GitLab, Travis — you've probably heard of at least one of these before.

In the next post, we'll cover GitHub, one of the leading services among the above, and specifically its CI/CD feature: GitHub Actions.

# GitHub# GitHub Actions# CI# CD# Continuous Integration# Continuous Delivery# Continuous Deployment
ship
blog.itcode.dev

Notes from the π-th Alpaca

7.0.1
Developed by RWB since 2021.057th upgraded at 2026.08