<aside> 💡 CI/CD를 어떻게 설계했는지 적고있는 문서

</aside>

google cloud engine을 이용해서 ci/cd를 설계해 보았다.


Repo

전체적인 흐름: https://www.youtube.com/watch?app=desktop&v=lIBUsJU1AE8

환경변수 파일 관리: https://ji5485.github.io/post/2021-06-26/create-env-with-github-actions-secrets/

다른 사람의 케이스1: https://velog.io/@boo105/Git-Action-과-Docker로-CICD-해보자 다른 사람의 케이스2: https://velog.io/@dongyoungkim/github-gcp-cicd

github action docs: https://github.com/docker/build-push-action

이 외에도 내가 사용한 여런 github action docs를 직접 참조


Github Action

<aside> 💡 GitHub Actions is a continuous integration and continuous delivery (CI/CD) platform that allows you to automate your build, test, and deployment pipeline.

</aside>

github action은 CI/CD 플랫폼으로 자동으로 빌드, 테스트, 배포를 할 수 있게 도와준다고 한다.

workflow 파일안에 코드를 작성하면 이를 자체 가상 머신 러너나 컨테이너 내부에서 실행을 해준다고 한다.

Untitled

WorkFlows

workflow는 내가 자동으로 실행시키고 싶은 프로세스이다. yml 포맷으로 저장해야하며, 여러 event들에 의하여 자동으로 실행될 수 있다. 이 파일은 .github/workflows 파일안에 정의해야한다. github action 을 레포지토리에서 누르면 자동으로 레포지토리를 생성해준다.

그리고 나는 push 될 때만 이렇게 실행되는 건지 알았는데, 알고보니 저장소에 대한 여러 event들에 대해서도 workflow가 실행될 수 있게 작업을 할 수 있다고 한다. 그리고 나는 현재 main.yml만 운영을 하고 있는데, 여러가지 상황에 대한 yml 파일을 여러개 만들어서 각 요청에 대한 workflow를 따로 운영할 수도 있다고 한다. 깃허브 액션을 설명하는 docs에 보면 어떤 요청에 대해서 자동화 workflow를 실행시킬 수 있는지에 대한 아주 자세한 글이 있다. 정말 많은 상황에서 사용할 수 있는 좋은 툴인 것 같다.

https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows

Events