GitHub パイプラインアクション

  • リリースバージョン: Zurich
  • 更新日 2025年07月31日
  • 所要時間:13分
  • GitHubパイプラインでこれらのアクションを使用して、DevOps コンフィグデータモデルを操作します。

    重要:
    DevOps コンフィグ は現在は廃止されており、新しいアクティベーションのサポートや利用は終了しています。

    GitHub スクリプト化されたパイプラインと宣言型パイプラインがサポートされています。

    特定のパイプライン定義を作成するための ServiceNow DevOps コンフィグ検証 (servicenow-devops-config-validate) および DevOps コンフィグエクスポート (servicenow-devops-config-export) GitHub アクションが提供されています。

    DevOps コンフィグ検証 (servicenow-devops-config-validate)

    ServiceNowインスタンスの構成データをアップロードして検証します。

    入力引数
    Argument 説明
    instance-url ServiceNowインスタンスの URL です。
    devops-integration-username DevOps コンフィグ 統合ユーザー名。
    devops-integration-user-password DevOps コンフィグ 統合ユーザーパスワード。
    application-name DevOps コンフィグ アプリケーション名。
    ターゲット 構成ファイルがアップロードされるデータモデルターゲット。
    データモデルターゲットの例は次のとおりです。
    • コンポーネント
    • collection
    • 展開可能
    deployable-name DevOps コンフィグデータモデル内の展開可能項目名。
    collection-name (オプション)データモデル内のコレクション名。ターゲットがコレクションの場合は必須です。
    name-path (オプション)名前 構成ファイルがアップロードされるデータモデル内のノードのパス。
    config-file-path 単一のファイルをアップロードするときのファイルパス、またはデータモデルに複数のファイルをアップロードするときの Ant スタイルパターンに基づくファイルパスパターン。Ant スタイルのパターンの詳細については、Apache Ant.1.10.14 マニュアルドキュメントの「ディレクトリベースのタスク」を参照してください。
    data-format 構成ファイルのデータ形式。
    データ形式の例:
    • CSV
    • INI
    • JSON
    • プロパティ
    • RAW
    • XML
    • YAML
    data-format-attribute (オプション)構成データを解析するための拡張データ形式属性。
    自動コミット アップロードの成功後に構成データをコミットするためのブール値 (true または false) 入力。

    デフォルト値:True

    自動検証 コミットの成功後に構成データを検証するためのブール値 (true または false) 入力。

    デフォルト値:True

    自動公開 検証の成功後に構成データを公開するためのブール値 (true または false) 入力。

    デフォルト値:True

    変更セット (オプション)アップロードアクションに関連付けられた変更セットを開きます。指定しない場合、新しい変更セットが作成されます。
    snapshot-validation-timeout (オプション)検証が完了するまでにアクションが失敗するまでの最大時間 (分)。

    デフォルト値:60

    terminate-on-policy-validation-failures (オプション)ポリシー検証に失敗した後に GitHub ワークフローを終了するためのブール値 (true または false) 入力。

    デフォルト値:false

    出力
    changeset-number

    アップロードアクションに関連付けられた変更セット番号。

    snapshot-name

    展開可能項目の最新スナップショットの名前。

    validation-status

    スナップショットの検証ステータス。例: 合格passed_with_exception失敗execution_errornot_validated

    validation-results

    スナップショットの 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
    例 — 複数の設定ファイルを 1 回のコミットでアップロードする
    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 コンフィグを使用して構成データをエクスポートします。

    入力引数
    Argument 説明
    instance-url ServiceNowインスタンスの URL です。
    devops-integration-username DevOps コンフィグ 統合ユーザー名。
    devops-integration-user-password DevOps コンフィグ 統合ユーザーパスワード。
    application-name DevOps コンフィグ アプリケーション名。
    deployable-name DevOps コンフィグデータモデル内の展開可能項目名。
    exporter-name DevOps コンフィグデータモデルから構成データをエクスポートするエクスポーター名。
    snapshot-name (オプション)データのエクスポート元のスナップショット。スナップショットが指定されていない場合は、展開可能項目の最新のスナップショットが使用されます。
    exporter-data-format (オプション)スナップショットデータをエクスポートする形式。
    データ形式の例:
    • CSV
    • INI
    • JSON
    • プロパティ
    • RAW
    • XML
    • YAML
    exporter-arguments (オプション)エクスポーターとともに使用する引数。値は、文字列として表される 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