Github Actions이란 Github에서 제공하는 워크플로우(workflow)를 자동화하도록 도와주는 도구이다. 테스트, 빌드, 배포 등의 다양한 작업들을 자동화하여 처리한다.
※ 깃헙액션과 같은 다른 도구는 무엇이 있는가?
젠킨스
Jenkins 는 Java 기반, 크로스 플랫폼, 오픈 소스 CI/CD 도구입니다. 지속적인 제공과 함께 지속적인 통합을 제공합니다. 또한 실시간 테스트 및 보고가 가능합니다.
Jenkins Pipeline은 전달 파이프라인을 "코드로" 모델링하는 데 사용할 수 있는 도구 세트를 제공합니다. Jenkins는 DSL(도메인별 언어)을 사용하여 파이프라인을 구현합니다. 그것은 오픈 소스이며 오랫동안 존재했기 때문에 널리 사용되는 최고의 CI/CD 도구 중 하나입니다.
Travis CI
Jenkins와 마찬가지로 Travis CI 도 CI/CD 파이프라인 도구 시장의 선두주자 중 하나입니다. 처음에는 오픈 소스 프로젝트용으로만 출시되었으며 나중에 클로즈드 소스 프로젝트도 지원하기 위해 마이그레이션되었습니다.
Ruby 프로그래밍 언어로 작성된 Travis CI는 프로젝트가 GitHub 또는 Bitbucket에 있는 경우 오픈 소스 및 엔터프라이즈 수준 프로젝트를 위한 최고의 CI/CD 도구 중 하나입니다. CircleCI와 마찬가지로 Travis CI도 개인 클라우드(또는 자체 호스팅 플랫폼)에서 Travis CI를 사용하려는 오픈 소스 커뮤니티 및 기업을 위한 다양한 제품을 제공합니다
Github Actions은 Github 저장소에서 등록할 수도 있고 .github/workflows 폴더 내에 .yml 파일을 추가하여 등록할 수도 있다.
저장소에 추가하는 자동화된 프로세스이다. 하나 이상의 job으로 이루어져 있으며 이벤트에 의해 실행된다.
워크 플로우를 실행하는 특정 활동이나 규칙이다.
커밋의 push, pull request가 생성되었을 때뿐만 아니라 저장소 dispatch event를 통해 Github 외부에서 발생하는 활동으로도 이벤트를 발생시킬 수도 있다.
민감한 정보 저장
워크 플로우가 비밀번호나 인증서 같은 민감한 정보를 사용한다면 Github에 secret으로 저장하여 환경 변수로 사용 가능하다.
젠킨스와 Github Actions의 차이
→ 깃헙액션은 젠킨스에 비해 설정이 매우 쉽다.
→ jenkins는 계정과 트리거를 기반으로 하고 있으며, 빌드를 중심으로 동작한다. 반면에 GitHub Actions는 모든 GitHub 이벤트를 통해 수행될 수 있습니다.