로컬 실행 GiitHub Action 워크플로우

GiitHub Action 을 사용하십니까?
간단하면서도 고성능이면 되겠죠.
하지만 다 좋은 일은 아니다.
그런 일 없었어?
  • push를 실행할 때이기 때문에push를 실행하지 않으면 작동 여부를 모른다
  • 로컬 테스트와 유사한 docker-compose입니다.yml 쓰기 싫어이번에는 이 어려운 일들을 해결하기 위해서.
    다음은 로컬에서 Action 워크플로우를 실행하는 방법에 대해 설명합니다.
    또한, 아래에 설명된 방법은 Services가 사용할 수 없는 것과 같은 완전한 대체 방법이 아닙니다.기술을 선택할 때 손 옆에서 테스트를 하는 것을 추천합니다.

    nektos/act 사용


    사용해 보세요nektos/act.
    이것은
    Run your GitHub Actions locally 🚀
    act/README.md at master · nektos/act
    이렇게 바로 이번에 원하는 물건이다.

    가져오기


    기존의 포장 관리 매니저에게서 가져올 수 있다.
    Mac(HomeBrew)는 다음과 같습니다.
    brew install act
    
    기타 환경의 설치 방법은 공식 README를 확인하십시오.

    실행


    push 시 워크플로우를 실행하는 방법은 다음과 같습니다.
    프로젝트 노선에서 다음 명령을 한 번에 내릴 수 있다.
    act
    
    Pull Request 등 기타 시간에 수행된 명령은 다음과 같습니다.
    act pull_request
    
    아주 간단하네요.

    주의점


    act의 행동과 실제 동작의 차이.
    두드러진 점은 이미지ubuntu-latest를 지정할 때 내부적으로 node:12.6-buster-slim를 사용하기 때문에 makesudo 같은 기본 명령이 없다는 것이다.
    정통ubuntu-latest 이미지를 활용하는 방법도 있지만, 18GB 이미지도 있다.따라서act환경에서의 작업절차에서 필요한 포장을 단독으로 설치할 수 있다.예를 들어 이런 느낌의 step를 먼저 놓는다.
    # some package is not installed on nektos/act's ubuntu-latest
    # (node:12.6-buster-slim)
    - name: Install dependencies
      run: |
        apt update
        apt install -yV build-essential
    
    단, 액티콘스 측에 sudoapt가 없으면 사용할 수 없으며,act가 좋아도Actions를 통해 처리할 수 있다.여기에 지령의 설치 완료 여부에 따라 조건이 엇갈리면 됩니다. 가동 방법이 생각나면 저에게 알려주세요...

    아직 할 수 없는 일, 할 수 있을지 없을지 모르는 일


  • 서비스 사용 불가
  • Services not working · Issue #173 · nektos/act
  • GiitHub Pages 주변에서 사용할 수 있는지 여부
  • CodeQL을 사용할 수 있는지 여부
  • 총결산


    이에 따라 GiitHub Action의 로컬 실행 방법nektos/act도 소개했다.
    로컬에서만 Action 실행
    가상 환경에서 테스트하는 옵션으로도 사용할 수 있다.
    아직 할 수 없는 일이 많지만 기대되는 프로젝트네요.

    참고 문헌

  • nektos/act: Run your GitHub Actions locally 🚀
  • 좋은 웹페이지 즐겨찾기