GitHub 파이프라인 작업

  • 릴리스 버전: Australia
  • 업데이트 날짜 2026년 03월 12일
  • 소요 시간: 12분
  • 파이프라인에서 GitHub 이러한 작업을 사용하여 데이터 모델과 상호작용합니다.DevOps 구성

    중요사항:
    DevOps 구성 은 이제 더 이상 지원되지 않으며 새로운 활성화에 사용할 수 없습니다.

    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 구성 애플리케이션 이름입니다.
    대상 구성 파일이 업로드되는 데이터 모델 대상입니다.
    데이터 모델 대상의 예는 다음과 같습니다.
    • 구성요소
    • 수집
    • 배치 가능
    배포 가능 항목 이름 데이터 모델의 배포 가능 항목 이름입니다.DevOps 구성
    컬렉션 이름 (선택 사항) 데이터 모델의 컬렉션 이름입니다. 대상이 컬렉션인 경우 필요합니다.
    이름-경로 (선택 사항) 이름 구성 파일이 업로드되는 데이터 모델의 노드 경로입니다.
    구성 파일 경로 단일 파일을 업로드할 때의 파일 경로 또는 여러 파일을 데이터 모델에 업로드할 때 Ant 스타일 패턴을 기반으로 하는 파일 경로 패턴입니다. Ant.1.10.14 매뉴얼 문서에서 Apache Ant 스타일 패턴에 대한 정보는 디렉토리 기반 작업을 참조하십시오.
    데이터 형식 구성 파일의 데이터 형식입니다.
    데이터 형식의 예는 다음과 같습니다.
    • CSV
    • INI
    • JSON
    • 속성
    • RAW
    • XML
    • YAML
    데이터 형식 속성 (선택 사항) 구성 데이터 구문 분석을 위한 확장된 데이터 형식 속성입니다.
    자동 커밋 업로드에 성공한 후 구성 데이터를 커밋하기 위한 부울(예 또는 아니오) 입력입니다.

    기본값: True

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

    기본값: True

    자동 게시 부울(예 또는 아니오) 입력으로 구성 데이터를 성공적으로 확인한 후 게시합니다.

    기본값: True

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

    기본값: 60

    정책 확인 실패 시 종료 (선택 사항) 정책 확인 실패 후 워크플로우를 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
    exporter-arguments (선택 사항) 익스포터와 함께 사용할 인수입니다. 값은 문자열로 표시되는 JSON 객체여야 합니다.
    출력
    익스포터-컨텐츠

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

    예 — 특정 스냅샷 익스포트
    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