Continuous Delivery와 Continuous Deployment의 차이를 구분하는 것이 중요하다.
git flow의 브런치 전략에서 릴리즈 브런치 안에서 자동화가 이루어지면 Continuous Delivery가 이루어 지는 것
Opensource 쪽에서는 TravisCI를 많이 쓴다고 함.
Circle은 설계를 하다가 막혔을 때, 설계를 맡기고 싶을 때 사용하고 Java 유저들은 Jenkins를 많이 사용한다고 함.
Continuous Delivery: 공유 저장소로 자동 Release(Test -> Staging)
Continuous Deployment: Production Level까지 자동 Deploy(Test -> Staging -> Production)
MSA(MicroService Architecture) + Agile 일 경우, 사용자에게 최대한 빠른 시간안에 Production 제공 필요
.github/ISSUE_TEMPLATE/*.md
에 template 생성 가능Settings
- Features_Set up templates 에서 손쉽게 생성 가능.github/PULL_REQUEST_TEMPLATE/pull_request_template.md
팀 프로젝트 진행 시에 일관성있는
logging
이 중요하다.
잘되어 있는 Issue Template --> angular 팀
참고 사이트: https://github.com/angular/angular/tree/master/.github/ISSUE_TEMPLATE
Workflow
Event
Job
Step
Action
Runner
예시: echo something
name: CI
on:
push:
branches: [ main ]
pull_request:
branches: [ main, develop ]
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Run a one-line script
run: echo Hello, world!
- name: Run a multi-line script
run: |
echo Add other actions to build,
echo test, and deploy your project.
규칙 정하기
on:
push:
branches: [ main, develop ]
tags: "v*"
pull_request:
branches: [ develop ]
on:
schedule:
- cron: "* * * * *"
릴리즈 할때 버전 태그가 있는 것들을 필터링 할 수 있음
wiki
.git 을 clone 하여 local에서 관리 가능