Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.
RetroTech 팟캐스트 44BITS 팟캐스트

GitHub Actions에서 워크프로우 실행의 이름을 바꿀 수 있는 run-name

최근 GitHub Actions의 실행 이름을 동적으로 설정하는 기능이 추가되었다.

GitHub Actions의 워크플로우 실행 목록 예시

지금까지는 GitHub Actions의 각 워크플로우의 실행 목록을 보면 이벤트 성격에 따라 GitHub이 알아서 이름을 만들어 준다. Push로 실행된 액션은 커밋 메시지가 이름이 되고 Pull Request로 실행된 액션은 Pull Request의 제목이 이름이 된다.

여태까지는 이게 기본이었는데 이제 이름을 동적으로 설정할 수 있는 기능이 추가된 것이다. CI(Continuous Integration)에서는 크게 중요하지 않다고 생각하지만, 배포나 릴리스에서는 필요한 기능이라고 생각한다. 기록의 가치가 크기도 하고 보통 버저닝 등을 하므로 목록에서 쉽게 내용을 파악할 수 있으면 좋기 때문이다.

다른 CI/CD 서비스들도 실행 중에는 임시로 이름을 부여하고 테스크 실행 중에 생성된 값으로 이름을 업데이트할 수 있게 제공하고 있다. Azure DevOps의 경우 Build.BuildNumber의 값을 업데이트 해주면 파이프라인에서도 이 값이 바뀌게 된다.

이런 기능을 기대했는데 좀 아쉽긴 하다.

name: Dynamic name

on: [push, workflow_dispatch]

run-name: Run with ${{ github.sha }} commit by ${{ github.actor }}

jobs:
  version:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3

run-name은 최상위에 선언하는 값이다.(특정 잡이나 스탭에 포함된 이름이 아니다) 그래서 위처럼 정의하면 다음과 같이 이름이 변경된다.

run-name으로 수정한 워크플로우 실행 이름

run-name에서는 github 컨텍스트나 inputs 컨텍스트만 현재 사용할 수 있다.

아쉬운 부분은 뭔가 액션을 수행할 수 있는 jobs 내에서 이 값을 수정할 수 없다는 부분이다. 지금처럼 기능을 추가한걸 보면 액션이 실행될 때 이미 확정된 값으로만 참조해서 이름을 지정할 수 있게 한 것 같다. 하지만 새로운 버전을 릴리스하는 액션을 만들었다고 하면 새 릴리스의 버전을 액션 내에서 계산에서 생성할 수도 있는데 이 값을 다시 액션 실행의 이름으로 추가할 방법이 없다. 위 예시에서도 Git의 SHA를 7자만 자르고 싶었는데 자를 수가 없었다.

기능이 추가되었으니 필요한 상황이 있을 수 있겠지만 액션이 실행될 때 확정된 값만으로는 유용하게 쓸 상황이 잘 생각나진 않았다. 앞으로도 기능이 추가될 테니 그래도 없는 거 보다는 낫겠다고 생각한다.

2022/09/30 03:01 2022/09/30 03:01