[디자인 시스템] 8주 차 회고

GwangSoo·2024년 5월 16일
0

디자인 시스템

목록 보기
6/8
post-thumbnail

6주 차는 시험 기간으로 참여하지 못했고, 7주 차는 자료를 추후에 다른 주차와 함께 적어보려고 한다. 8주 차는 CI/CD와 changesets에 대해 알아보았다.

CI/CD

CI는 지속적인 통합으로 빌드와 테스트의 자동화를 의미한다. CD는 지속적인 제공 혹은 지속적인 배포라고 하며 CI의 단계를 통과하면 프로덕션으로 배포해 주는 것을 의미한다.

JetBrains에서 설문조사를 한 결과 중 가장 많이 사용되는 3개의 CI/CD의 툴은 다음과 같다.

나는 이 3개의 툴 중 Github Actions에 대해 알아보겠다.

Github Actions를 사용해야하는 이유

1. 자동화

깃허브에 있는 코드를 바로 가져와서 빌드, 테스트, 배포할 수 있게 워크플로우를 자동화 해준다.

2. 커스터마이징

자신의 용도에 맞는 액션을 깃허브 마켓플레이스에서 가져와서 사용하거나 액션을 만들어서 사용할 수 있다.

3. 통합

issue나 pull request를 생성하는 것처럼 깃허브에서 제공하는 기능들과 원활하게 통합한다. 또한 AWS, Azure와 같은 클라우드 서비스 뿐만 아니라 Jira, Slack과 같은 커뮤니케이션 툴과도 통합이 된다.

용어

Workflows

workflow는 하나 혹은 다수의 job을 실행하도록 구성할 수 있는 자동화된 프로세스이다. 이는 event 발생 시, 수동으로 혹은 정의된 스케쥴에 의해 실행된다.

Events

event는 레포지토리 내에서 workflow를 실행시키는 특정 행동이다. 예를 들면 commit을 하거나, pull request를 하는 경우, issue를 만드는 경우가 있다.

Jobs

job은 workflow 내의 같은 runner에서 실행 중인 step의 집합이다.

Actions

action은 job을 만들어서 합치고 workflow를 커스터마이징 할 수 있게 해주는 개별적인 태스크이다.

Runners

runner는 workflow가 트리거 되었을 때 실행시켜주는 서버이다. runner는 한 번에 하나의 job을 실행한다.

참고 workflows

AWS Cloudscape Design System

https://github.com/cloudscape-design/components/blob/main/.github/workflows/release.yml

  • main이나 dev-v3로 시작하는 브랜치에 push가 됐을 때 실행됨
  • release.yml에서 unitTest, integTest, allyTest를 수행 후 release 하는 방식을 사용함

https://github.com/cloudscape-design/jest-preset/blob/main/.github/workflows/release.yml

  • release를 마켓플레이스에 배포 후 사용 중인 것으로 확인됨

Chakra UI

https://github.com/chakra-ui/chakra-ui/blob/main/.github/workflows/release.yml

  • changeset이나 packages 경로에 있는 파일이 변경되어 push 되었을 때, 혹은 main branch에 push가 발생했을 때 actions가 실행됨
  • setup하는 부분을 같은 레벨에 있는 폴더에 만든 후 불러와서 실행함
  • changesets/action@v1를 통해 자동으로 배포하거나 실패할 경우 수동으로 배포를 할 수 있음
  • slack에 알람 보내는 기능도 붙임

GitHub Primer

https://github.com/search?q=topic%3Adesign-system+org%3Aprimer&type=Repositories

  • css, react, view_componentes 레포가 따로 있음
  • primer 레포지토리 내에 .github 레포가 있고 여기에 workflow 관련된 yml 파일들이 있음

changesets

모노레포에서 상호 의존하는 패키지 버전 관리를 용이하게 하기 위해서 사용된다.

Automate Package Versioning With Changesets CLI Tool 영상을 보니 어느정도 이해가 되는 것 같아서 공유합니다!

다음 주까지 할 일

  • tsup을 이용한 모노레포 세팅

참고

0개의 댓글