6주 차는 시험 기간으로 참여하지 못했고, 7주 차는 자료를 추후에 다른 주차와 함께 적어보려고 한다. 8주 차는 CI/CD와 changesets에 대해 알아보았다.
CI는 지속적인 통합으로 빌드와 테스트의 자동화를 의미한다. CD는 지속적인 제공 혹은 지속적인 배포라고 하며 CI의 단계를 통과하면 프로덕션으로 배포해 주는 것을 의미한다.
JetBrains에서 설문조사를 한 결과 중 가장 많이 사용되는 3개의 CI/CD의 툴은 다음과 같다.
나는 이 3개의 툴 중 Github Actions에 대해 알아보겠다.
깃허브에 있는 코드를 바로 가져와서 빌드, 테스트, 배포할 수 있게 워크플로우를 자동화 해준다.
자신의 용도에 맞는 액션을 깃허브 마켓플레이스에서 가져와서 사용하거나 액션을 만들어서 사용할 수 있다.
issue나 pull request를 생성하는 것처럼 깃허브에서 제공하는 기능들과 원활하게 통합한다. 또한 AWS, Azure와 같은 클라우드 서비스 뿐만 아니라 Jira, Slack과 같은 커뮤니케이션 툴과도 통합이 된다.
workflow는 하나 혹은 다수의 job을 실행하도록 구성할 수 있는 자동화된 프로세스이다. 이는 event 발생 시, 수동으로 혹은 정의된 스케쥴에 의해 실행된다.
event는 레포지토리 내에서 workflow를 실행시키는 특정 행동이다. 예를 들면 commit을 하거나, pull request를 하는 경우, issue를 만드는 경우가 있다.
job은 workflow 내의 같은 runner에서 실행 중인 step의 집합이다.
action은 job을 만들어서 합치고 workflow를 커스터마이징 할 수 있게 해주는 개별적인 태스크이다.
runner는 workflow가 트리거 되었을 때 실행시켜주는 서버이다. runner는 한 번에 하나의 job을 실행한다.
https://github.com/cloudscape-design/components/blob/main/.github/workflows/release.yml
https://github.com/cloudscape-design/jest-preset/blob/main/.github/workflows/release.yml
https://github.com/chakra-ui/chakra-ui/blob/main/.github/workflows/release.yml
https://github.com/search?q=topic%3Adesign-system+org%3Aprimer&type=Repositories
모노레포에서 상호 의존하는 패키지 버전 관리를 용이하게 하기 위해서 사용된다.
Automate Package Versioning With Changesets CLI Tool 영상을 보니 어느정도 이해가 되는 것 같아서 공유합니다!