GitHub 파이프라인 작업

  • 릴리스 버전: Xanadu
  • 업데이트 날짜 2024년 08월 01일
  • 읽기12분
  • 파이프라인에서 이러한 작업을 사용하여 데이터 모델과 DevOps 구성 상호 작용합니다GitHub.

    중요사항:
    Washington DC 릴리스부터 DevOps 구성는 향후 사용 중단을 준비 중입니다. 이 항목은 숨겨지고 새 인스턴스에 더 이상 설치되지 않지만 지원은 계속됩니다. 자세한 내용은 Now Support 지식베이스에서 사용 중단 프로세스 [KB0867184] 문서를 참조하십시오.

    GitHub 스크립팅된 파이프라인과 선언적인 파이프라인이 지원됩니다.

    ServiceNow 특정 파이프라인 정의를 생성하기 위해 DevOps 구성 확인(servicenow-devops-config-validate) 및 DevOps 구성 익스포트(servicenow-devops-config-export) GitHub 작업이 제공됩니다.

    DevOps 구성 확인(servicenow-devops-config-validate)

    인스턴스에서 ServiceNow 구성 데이터를 업로드하고 확인합니다.

    입력 인수
    인수 설명
    인스턴스-URL ServiceNow 인스턴스 URL입니다.
    devops-integration-username DevOps 구성 통합 사용자 이름입니다.
    devops-integration-user-password DevOps 구성 통합 사용자 암호입니다.
    애플리케이션 이름 DevOps 구성 애플리케이션 이름입니다.
    대상 구성 파일이 업로드되는 데이터 모델 대상입니다.
    데이터 모델 대상의 예는 다음과 같습니다.
    • component
    • 수집
    • 배치 가능
    배포 가능 이름 데이터 모델의 배포 가능 항목 이름입니다 DevOps 구성 .
    컬렉션 이름 (선택 사항) 데이터 모델의 컬렉션 이름입니다. 대상이 컬렉션인 경우 필요합니다.
    이름 경로 (선택 사항) 이름 구성 파일이 업로드되는 데이터 모델 내 노드의 경로입니다.
    config-file-path 단일 파일을 업로드할 때 파일 경로, 데이터 모델에 여러 파일을 업로드할 때 Ant 스타일 패턴을 기반으로 하는 파일 경로 패턴입니다. Ant.1.10.14 매뉴얼 문서의 Ant 스타일 패턴 Apache 에 대한 정보는 디렉토리 기반 태스크를 참조하십시오.
    데이터 형식 구성 파일의 데이터 형식입니다.
    데이터 형식의 예는 다음과 같습니다.
    • CSV
    • INI
    • JSON
    • 속성
    • RAW
    • XML
    • YAML
    데이터 형식 속성 (선택 사항) 구성 데이터를 구문 분석하기 위한 확장 데이터 형식 속성입니다.
    자동 커밋 업로드 성공 후 구성 데이터를 커밋하기 위한 부울(예 또는 아니오) 입력입니다.

    기본값: true

    자동 확인 성공적인 커밋 후 구성 데이터를 확인하기 위한 부울(예 또는 아니오) 입력입니다.

    기본값: true

    자동 게시 유효성 확인 성공 후 구성 데이터를 게시하기 위한 부울(예 또는 아니오) 입력입니다.

    기본값: true

    변경 세트 (선택 사항) 업로드 작업과 연결된 변경 세트를 엽니다. 제공되지 않은 경우 새 변경 세트가 만들어집니다.
    스냅샷 유효성 검사 시간 초과 (선택 사항) 작업이 실패하기 전에 확인이 완료되는 최대 시간(분)입니다.

    기본값: 60

    terminate-on-policy-validation-failures (선택 사항) 정책 확인 실패 후 워크플로우를 GitHub 종료할 부울(예 또는 아니오) 입력입니다.

    기본값: false

    출력
    변경 세트 번호

    업로드 작업과 연결된 변경 세트 번호입니다.

    스냅샷 이름

    배포 가능 항목의 최신 스냅샷 이름입니다.

    확인 상태

    스냅샷의 확인 상태입니다. 예: 통과, passed_with_exception, 실패, execution_errornot_validated

    확인 결과

    스냅샷에 대한 JSON 형식의 확인 결과입니다.

    예 — 배포 가능 항목에 구성 파일 업로드
    upload_and_validate_job:
        name: Upload and validate
        needs: <upstream job>
        runs-on: ubuntu-latest
        steps:     
          - name: ServiceNow Devops Config Validate
            uses: ServiceNow/servicenow-devops-config-validate@v1.0.0-beta
            with:
              instance-url: ${{ secrets.SN_INSTANCE_URL }}
              devops-integration-username: ${{ secrets.SN_DEVOPS_CONFIG_USERNAME }}
              devops-integration-user-password: ${{ secrets.SN_DEVOPS_CONFIG_PASSWORD }}
              application-name: PaymentDemo
              target: deployable
              deployable-name: Production
              name-path: web-api-v1.0
              auto-commit: true
              auto-validate: true
              auto-publish: true
              config-file-path: data/k8s/helm/*.yml
              data-format: yaml
              snapshot-validation-timeout: 60
              terminate-on-policy-validation-failures: true
    예제 — 컬렉션에 구성 파일 업로드
    upload_and_validate_job:
        name: Upload and validate
        needs: <upstream job>
        runs-on: ubuntu-latest
        steps:     
          - name: ServiceNow Devops Config Validate
            uses: ServiceNow/servicenow-devops-config-validate@v1.0.0-beta
            with:
              instance-url: ${{ secrets.SN_INSTANCE_URL }}
              devops-integration-username: ${{ secrets.SN_DEVOPS_CONFIG_USERNAME }}
              devops-integration-user-password: ${{ secrets.SN_DEVOPS_CONFIG_PASSWORD }}
              application-name: PaymentDemo
              target: collection
              deployable-name: Production
              collection-name: release-1.0
              name-path: web-api-v1.0
              auto-commit: true
              auto-validate: true
              auto-publish: true
              config-file-path: data/k8s/helm/*.yml
              data-format: yaml
              snapshot-validation-timeout: 60
              terminate-on-policy-validation-failures: true
    예제 — 구성 요소에 구성 파일 업로드
    upload_and_validate_job:
        name: Upload and validate
        needs: <upstream job>
        runs-on: ubuntu-latest
        steps:     
          - name: ServiceNow Devops Config Validate
            uses: ServiceNow/servicenow-devops-config-validate@v1.0.0-beta
            with:
              instance-url: ${{ secrets.SN_INSTANCE_URL }}
              devops-integration-username: ${{ secrets.SN_DEVOPS_CONFIG_USERNAME }}
              devops-integration-user-password: ${{ secrets.SN_DEVOPS_CONFIG_PASSWORD }}
              application-name: PaymentDemo
              target: component
              deployable-name: Production
              name-path: web-api-v1.0
              auto-commit: true
              auto-validate: true
              auto-publish: true
              config-file-path: data/k8s/helm/*.yml
              data-format: yaml
              snapshot-validation-timeout: 60
              terminate-on-policy-validation-failures: true
    예 — 단일 커밋에 여러 구성 파일 업로드
    upload_and_validate_job:
        name: Upload and validate
        
        needs: <upstream job>
        runs-on: ubuntu-latest
        # Upload an XML file to a component
        steps:     
          - name: ServiceNow Devops Config Validate
            id: upload_and_validate_xml
            uses: ServiceNow/servicenow-devops-config-validate@v1.0.0-beta
            with:
              instance-url: ${{ secrets.SN_INSTANCE_URL }}
              devops-integration-username: ${{ secrets.SN_DEVOPS_CONFIG_USERNAME }}
              devops-integration-user-password: ${{ secrets.SN_DEVOPS_CONFIG_PASSWORD }}
              application-name: PaymentDemo
              target: component
              deployable-name: Production
              name-path: web-api-v1.0
              auto-commit: false
              auto-validate: true
              auto-publish: true
              config-file-path: data/infra/v1/*.xml
              data-format: xml
              snapshot-validation-timeout: 60
              terminate-on-policy-validation-failures: true
    
        # Upload a JSON file to the vars folder of a deployable
        steps:     
          - name: ServiceNow Devops Config Validate
            id: upload_and_validate_json
            uses: ServiceNow/servicenow-devops-config-validate@v1.0.0-beta
            with:
              instance-url: ${{ secrets.SN_INSTANCE_URL }}
              devops-integration-username: ${{ secrets.SN_DEVOPS_CONFIG_USERNAME }}
              devops-integration-user-password: ${{ secrets.SN_DEVOPS_CONFIG_PASSWORD }}
              application-name: PaymentDemo
              target: component
              deployable-name: Production
              name-path: web-api-v1.0
              auto-commit: true
              auto-validate: true
              auto-publish: true
              config-file-path: data/infra/prod/*.json
              data-format: json
              snapshot-validation-timeout: 60
              terminate-on-policy-validation-failures: true
              changeset : ${{ steps.upload_and_validate_xml.outputs.changeset-number }}

    DevOps 구성 익스포트(servicenow-devops-config-export)

    를 사용하여 구성 데이터를 익스포트합니다 ServiceNow DevOps 구성.

    입력 인수
    인수 설명
    인스턴스-URL ServiceNow 인스턴스 URL입니다.
    devops-integration-username DevOps 구성 통합 사용자 이름입니다.
    devops-integration-user-password DevOps 구성 통합 사용자 암호입니다.
    애플리케이션 이름 DevOps 구성 애플리케이션 이름입니다.
    배포 가능 이름 데이터 모델의 배포 가능 항목 이름입니다 DevOps 구성 .
    익스포터 이름 데이터 모델에서 DevOps 구성 구성 데이터를 익스포트하는 익스포터 이름입니다.
    스냅샷 이름 (선택 사항) 데이터를 익스포트할 스냅샷입니다. 스냅샷을 지정하지 않으면 배포 가능 항목의 최신 스냅샷이 사용됩니다.
    익스포터 데이터 형식 (선택 사항) 스냅샷 데이터를 익스포트하는 형식입니다.
    데이터 형식의 예는 다음과 같습니다.
    • CSV
    • INI
    • JSON
    • 속성
    • RAW
    • XML
    • YAML
    익스포터 인수 (선택 사항) 익스포터와 함께 사용할 인수입니다. 값은 문자열로 표현된 JSON 개체여야 합니다.
    출력
    exporter-content

    익스포터가 익스포트하는 구성 데이터입니다.

    예 — 특정 스냅샷 내보내기
    export:
        name: Export config
        needs: <upstream job>
        runs-on: ubuntu-latest
        steps:
        - name: ServiceNow DevOps Config Export
          uses: ServiceNow/servicenow-devops-config-export@v1.0.0-beta
          with:
            instance-url: ${{ secrets.SN_INSTANCE_URL }}
            devops-integration-username: ${{ secrets.SN_DEVOPS_CONFIG_USERNAME }}
            devops-integration-password: ${{ secrets.SN_DEVOPS_CONFIG_PASSWORD }}
            application-name: PaymentDemo
            deployable-name: Production
            exporter-name: returnDataforNodeName-now
            snapshot-name: Production-v1.dpl
            exporter-arguments: '{ "nodeName": "node1" }'
    예 - 추가 파라미터를 사용하여 배포된 최신 스냅샷 내보내기
    export:
        name: Export config
        needs: <upstream job>
        runs-on: ubuntu-latest
        steps:
        - name: ServiceNow DevOps Config Export
          uses: ServiceNow/servicenow-devops-config-export@v1.0.0-beta
          with:
            instance-url: ${{ secrets.SN_INSTANCE_URL }}
            devops-integration-username: ${{ secrets.SN_DEVOPS_CONFIG_USERNAME }}
            devops-integration-password: ${{ secrets.SN_DEVOPS_CONFIG_PASSWORD }}
            application-name: PaymentDemo
            deployable-name: Production
            exporter-name: returnDataforNodeName-now
            exporter-arguments: '{ "nodeName": "node1" }'
            exporter-data-format: XML