개인용 GitHub 재사용 가능한 워크플로우 저장소 생성

발행: (2026년 2월 23일 오후 07:00 GMT+9)
5 분 소요
원문: Dev.to

Source: Dev.to

개요

GitHub Actions의 재사용 가능한 워크플로를 사용하면 다른 저장소의 워크플로 파일을 호출할 수 있습니다.
예시 사용법:

jobs:
  example:
    uses: masutaka/actions/.github/workflows/some-workflow.yml@main

공통 프로세스를 하나의 저장소에 통합하면 여러 프로젝트에 중복된 워크플로 파일을 유지 관리하는 부담을 줄일 수 있습니다.

제한 사항 및 주의점

  • Private → Public: 비공개 저장소에 있는 재사용 가능한 워크플로는 공개 저장소에서 호출할 수 없습니다.
  • 동일 조직/사용자: 비공개 재사용 가능한 워크플로는 같은 사용자 또는 조직에 속한 다른 저장소에서만 호출할 수 있습니다. 호출하는 저장소의 액세스 정책을 이에 맞게 설정해야 합니다.
  • Environment Context: 호출 워크플로 수준에서 정의된 env 컨텍스트는 전파되지 않습니다.
  • Secrets: secrets: inherit를 통해 전달할 수 있는 것은 일반 비밀만이며, 환경 비밀은 전달할 수 없습니다.
  • Job‑Level Execution: 재사용 가능한 워크플로는 항상 작업 수준에서 실행됩니다(단계로 사용할 수 없음). 각 호출은 별도의 러너를 시작하므로 파일 시스템이 작업 간에 공유되지 않습니다. 비공개 저장소의 경우 이는 Actions 사용 시간도 증가시킵니다. 단계 수준에서 재사용하려면 **복합 액션(composite action)**을 만들어야 합니다.

masutaka/actions공개 저장소이므로 앞의 두 제한 사항은 적용되지 않습니다.

저장소 내용

현재 저장소에는 다음과 같은 재사용 가능한 워크플로가 포함되어 있으며(docs/에 문서가 있고 README.md에서 링크됨):

워크플로설명
add_assignee_to_pr.ymlPR이 열릴 때 PR 작성자를 담당자로 지정합니다
codeql.yml변경된 파일에서 언어를 감지하고 CodeQL 분석을 실행합니다
codeql_core.yml지정된 언어에 대해 CodeQL 분석을 실행합니다
create_gh_issue.yml템플릿을 사용해 GitHub 이슈를 생성합니다
dependency_review.ymlPR 의존성을 검토합니다
pushover.yml워크플로 실패 시 Pushover 알림을 전송합니다

출처 및 커스터마이징

이전에는 route06/actions 저장소(전 직장에서 제가 유지보수 담당이던)를 사용했습니다. 개인용으로 몇 가지 커스터마이징, 특히 새로운 pushover.yml 워크플로가 필요했기 때문에 필요한 파일들을 새 저장소 masutaka/actions 로 복사했습니다.

이 통합 이전에는 동일한 pushover.yml 파일이 여러 개인 저장소에 중복되어 있었습니다. 모든 파일을 하나의 저장소로 옮기면서 이제 한 곳에서 업데이트를 할 수 있게 되었습니다.

라이선스 및 출처 표기

원본 저장소와 새 저장소 모두 MIT License 하에 배포됩니다. 복사한 각 워크플로 파일 상단에 다음과 같이 출처를 표기했습니다:

# Derived from https://github.com/route06/actions/blob/main/.github/workflows/codeql.yml
# Copyright (c) 2024 ROUTE06, Inc.
# Licensed under the MIT License.

LICENSE 파일에는 두 저작권 표시가 포함됩니다:

Copyright (c) Takashi Masuda
Copyright (c) 2024 ROUTE06, Inc.

이는 MIT License의 출처 표기 요구 사항을 충족합니다.

향후 계획

개인 저장소가 계속 늘어남에 따라 masutaka/actions에 공유 가능한 워크플로를 계속 추가·다듬어 나가고, 중복과 유지 보수 비용을 더욱 줄일 예정입니다.

참고 자료

0 조회
Back to Blog

관련 글

더 보기 »