GitHub Actions 구성

  • 릴리스 버전: Xanadu
  • 업데이트 날짜 2024년 08월 01일
  • 읽기5분
  • 에 대한 GitHub Actions구성 정보(예: 비밀, 워크플로우 및 제한 사항)

    의 비밀 GitHub Actions

    리포지토리 또는 GitHub 조직에서 비밀(자격 증명)을 GitHub 생성합니다. 비밀은 조직 또는 리포지토리에서 만드는 환경 변수(암호화됨)입니다. 이러한 비밀은 워크플로에서 GitHub Actions 사용할 수 있습니다. 자세한 내용은 암호화된 보안 암호를 참조하세요.

    비밀 설명
    SN_INSTANCE_URL ServiceNow 인스턴스 URL입니다. 예: https://<instance_name>.service-now.com.
    SN_ORCHESTRATION_TOOL_ID 인스턴스에서 ServiceNow 생성된 도구의 GitHub Sys_id입니다.
    SN_DEVOPS_INTEGRATION_TOKEN (devops-integration-token 매개변수)에서 GitHubDevOps 생성된 도구의 비밀 토큰입니다. 비밀 토큰에 액세스하려면 (모든 > 도구 > 오케스트레이션 도구)의 ServiceNow 도구 레코드로 GitHub 이동하고 클래식 UI에서 토큰 복사를 선택합니다.

    저장소의 GitHub 워크플로우

    YAML 파일을 만들어 리포지토리에서 GitHub 워크플로 구성을 정의합니다.

    워크플로우를 정의하는 동안 다음 사항을 고려해야 합니다.
    • 리포지토리의 모든 워크플로에는 .yml 또는 .yaml 파일 확장자가 있어야 합니다. 모든 워크플로는 .github/workflows 디렉터리 아래에 있어야 하며 GitHub Actions의 워크플로 구문에 정의된 구문을 따라야 합니다.

      GitHub Actions 탭의 워크플로

    • 워크플로우의 이름은 워크플로우 파일 이름과 일치해야 합니다.

      워크플로우의 이름이 파일 이름과 일치해야 함

    • 작업 탭의 모든 워크플로에 있는 워크플로의 이름은 리포지토리의 .github/workflows 디렉터리에 저장된 워크플로와 일치해야 합니다.

      동작 탭에 워크플로우 파일 배치

    • 표시 이름은 모든 작업에 지정되어야 하며 워크플로의 모든 작업에 대해 고유해야 합니다. 작업 이름은 사용자 지정 작업의 스테이지 이름과 일치해야 합니다.

      사용자 지정 작업의 작업 이름

    • workflow_dispatch 이벤트를 사용하여 워크플로우를 수동으로 트리거합니다.

      이벤트를 사용하여 워크플로우를 수동으로 트리거

    GitHub Actions 의 워크플로우 실행 상세 정보 DevOps

    웹후크를 구성한 후에는 워크플로우가 실행되거나 트리거될 때마다 알림 GitHub Actions 이 전송됩니다 ServiceNow DevOps .

    워크플로우가 리포지토리에서 GitHub 수동으로 실행되거나 자동으로 트리거되면 다음 세부 정보가 인스턴스로 ServiceNow 전송됩니다.
    • workflow_job 웹후크는 ServiceNow 워크플로우가 리포지토리에서 수동으로 실행되거나 자동으로 트리거될 때 작업 상태(큐에 대기 중, in_progress, 완료됨)를 GitHub 인스턴스에 알립니다.
    • 인바운드 이벤트는 작업 상태(큐에 대기 중, in_progress, 완료)에 대한 인스턴스에 생성 ServiceNow 되고 in_progress 이벤트는 무시됩니다.
    • 큐에 대기 중이고 완료된 인바운드 이벤트가 처리되고, ServiceNow DevOps 워크플로우에 구성된 작업에 대한 파이프라인 단계 및 오케스트레이션 작업이 생성됩니다.
    • 파이프라인 실행은 워크플로우 실행에서 실행된 각 작업에 대해 생성된 작업 실행 및 단계 실행 기록과 함께 모든 워크플로우 실행에 대해 생성됩니다.
    • 파이프라인 UI를 사용하여 파이프라인 실행 전반에 걸쳐 상호 작용과 결과를 시각화할 수 있습니다.

    GitHub 재실행

    작업에 대해 GitHub 생성된 변경 요청은 변경 요청이 구현 및 구현 후 단계에 있는 경우 다시 사용됩니다. 예를 들어 파이프라인 실행의 경우 다음과 같습니다.
    • 변경 요청이 구현 단계에 있기 전에 작업이 실패하면 실패한 작업을 다시 실행할 때 생성된 변경 요청이 다시 사용되지 않습니다.
    • 실패한 작업 또는 모든 작업이 다시 실행되면 새 변경 요청이 생성됩니다.
    • 이제 변경 요청이 구현 또는 구현 후 단계에 있을 때 작업이 실패할 경우 실패한 작업 또는 모든 작업을 다시 실행할 때 변경 요청이 다시 사용됩니다.
      주:
      작업이 실패하기 전에 변경 요청이 이전 단계에서 이미 구현된 경우 다시 실행하는 동안 파이프라인 실행이 중지되지 않습니다. 변경 요청은 이미 승인되고 구현된 것으로 간주됩니다.

    복합 워크플로우

    한 워크플로에서 다른 워크플로를 호출하고 변경 단계가 하위 워크플로에 있는 복합 워크플로의 경우 job-name 변경 단계의 매개 변수는 job-name: '<parent-workflow-name> / <child-workflow-name>' 형식이어야 합니다. 여기서 슬래시(/) 앞뒤의 공백은 필수입니다.

    그림 1. 하위 워크플로우의 job-name 매개변수 예
    샘플 job-name 매개 변수입니다.

    GitHub Actions 통합에 대한 DevOps 변경 속도 제한 사항

    • GitHub ActionsGitHub 및 환경은 버전 3.3부터 Server에서 GitHub Enterprise 지원됩니다.
      • 환경에 대한 GitHub 자세한 내용은 배포에 환경 사용을 참조하세요.
      • GitHub 환경은 클라우드에서만 GitHub Enterprise 비공개 리포지토리에서 사용할 수 있습니다.
    • 조직의 경우 GitHub 통합을 ServiceNow DevOps 위해 개인용 액세스 토큰이 있는 특정 계정(필요한 조직에 대한 액세스 권한 포함)을 사용하거나 인증 코드 2.0 또는 JWT를 통해 앱을 사용할 GitHub 수도 있습니다.

      앱 - JWT를 사용하여 GitHub 도구를 만들려면 별도의 조직을 위해 별도의 도구를 만들어야 합니다.

    • 워크플로우 실행을 위해 인스턴스에서 최신 GitHub Actions 검사 결과만 끌어올 수 있습니다.
    • ServiceNow DevOps 병렬 작업에는 사용자 지정 작업 또는 환경을 사용한 변경 자동화가 지원되지 않습니다. 병렬 작업의 경우 웹후크 알림 페이로드에는 시퀀스 번호와 병렬로 실행된 작업에 대한 정보가 포함되지 않습니다. 이 제한으로 인해 작업 시퀀스는 (/repos/{owner}/{repo}/actions/runs/{run_id}/jobs) API의 응답에서 반환된 실행 순서에 따라 달라집니다.
    • 인스턴스에서 워크플로우 실행을 ServiceNow 일시 중지하고 다시 시작하기 위한 콜백 URL은 배포 게이트 기능에서만 GitHub Actions 지원됩니다. 그러나 배포 게이트와 GitHub Custom Action을 통해 변경 내용을 만들 수 있습니다.
    • 인스턴스에서 ServiceNow 도구를 만드는 GitHub 사용자는 환경에 대한 GitHub 워크플로우를 승인하는 검토자여야 합니다.