러닝 깃허브 액션
구조와 흐름이 없는 자동화 플랫폼은 그저 도구 모음일 뿐입니다.
러닝 깃허브 액션
자동화 플랫폼을 효율적으로 잘 사용하려면 작업의 구조와 흐름을 잘 이해하고 있어야 한다. 깃허브 액션을 사용할 때, 풀 리퀘스트로 코드를 변경할 때마다 깃허브가 지속적으로 배포 파이프라인을 발동한다. 만약 깃허브 액션을 사용하지 않는다면, 풀 리퀘스트가 발생했다는 깃허브의 알림에 응답해서 처리할 수 있는 외부 도구가 필요할 것이다. 깃허브 액션의 가장 큰 장점은 깃허브에 내장된 기능으로 자동화를 구현할 수 있다는 점이다. 이렇게 정의한 자동화는 편리하게 생성한 워크플로를 코드와 같이 깃허브 리포지터리에 저장한다. 즉, 액션은 깃허브에 내장된 기능으로 자동화를 쉽게 구현하는 것이다.
개요는 간단하다. 일치하는 이벤트가 발생하면,
리포지토리에 저장된 워크플로 정의가 발동되고,
워크플로가 지정하는 러너라는 시스템에서 잡이 실행된다.
잡은 사전 정의된 액션을 호출하거나 러너의 OS 셀에서 명령을 실행하는 스텝으로 구성된다..
CI/CD가 처음 등장했을 때는 젠킨스 등으로 파이프라인을 만들었는데, 너무 유연햇기 때문에 개별 구성 요소를 한 파이프라인으로 묶는데 많은 과정이 필요했다. 이 점이 깃허브 액션과 비교되는 점이다. 깃허브 액션은 프로세스에서 파이프라인이라는 용어를 명시적으로 사용하지는 않지만, 프레임워크의 흐름을 보면 파이프라인의 구조와 거의 흡사하다. 워크플로에는 잡이라 부르는 작은 기능 단위가 서로 연결되는데, 잡은 다른 애플리케이션에서 스테이지라고 부른다. 잡과 스테이지는 전체 자동화 프로세스 내에서 딱 집어 구분되는 개별적인 기능 하나를 수행하는 구간을 의미한다.
깃허브 마켓플레이스의 액션을 보면, 다른 사람들이 만든 유용한 액션이 있다. 사용자는 원하는 액션을 찾아서 호출만 하면 된다. 액션들은 완전한 기능을 갖춘 코드로, 사용자가 자신의 워크플로에 자유롭게 도입할 수 있어서 큰 장점을 가진다. 워크플로를 만들기 위해 액션 마켓 플레이스에서 액션을 찾는다면 직접 코딩하는 시간과 노력을 줄일 수 있다. 마켓 플레이스에서 제공하는 기능을 살펴보면 IDE와의 상호작용, 현지화, 모바일 개발, 지라(JIRA)를 위한 카테고리도 있다. 마켓 플레이스의 액션들은 깃허브가 공식적으로 만들어 올릴 때도 있으나, 다른 개인이나 조직, 회사 등 액션을 사용하는 사용자들이 직접 만들어 공유하기도 한다.
이 책에서, 깃허브 액션의 작동원리를 예시와 함께 찾아볼 수 있었고, 각각의 단계를 구현하는 방법을 배웠다. 특히, 이벤트에 반응하여 특정 잡을 실행하는 워크플로가 핵심요소인데, 워크플로보다 한 단계 다음에서는 각 잡이 자신이 맡은 스텝을 실행한다. 작동원리 이외에도, 직접 액션 마켓플레이스로 이동해서 정보를 확인하는 방법, 워크플로를 만들고, 실행하고, 성공 여부를 모니터링 하는 방법, 깃허브가 제공하는 기본 러너 시스템과 직접 구성해서 호스팅한 러너 시스템 각각의 사용법, 워크플로의 환경을 관리하는 방법, 워크플로에서 데이터를 관리하는 방법, 액션을 통해 자동화 하는 방법, 직접 커스텀 액션을 만드는 방법 등을 다양한 도구들인 깃허브, vscode, 도커 등을 사용하여 활용할 수 있도록 그림과 실제 코드가 같이 정리되어 있었다.
깃허브 활용법에 대해서만 공부하고, 깃허브 액션은 활용해볼 생각을 하지 못했는데 이 책을 천천히 따라가면서 공부하면 워크플로 자동화와 모니터링에 활용할 수 있을 것이다.
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."