GitHub パイプラインアクション
GitHubパイプラインでこれらのアクションを使用して、DevOps コンフィグデータモデルを操作します。
重要:
Washington DC リリース以降、DevOps コンフィグ は将来の廃止に備えて準備されます。これは非表示になり、新しいインスタンスにはインストールされなくなりますが、引き続きサポートされます。詳細については、Now Support ナレッジベースの「Deprecation Process (廃止プロセス) [KB0867184]」の記事を参照してください。
GitHub スクリプト化されたパイプラインと宣言型パイプラインがサポートされています。
特定のパイプライン定義を作成するために、 ServiceNow DevOps コンフィグ検証 (servicenow-devops-config-validate) および DevOps コンフィグエクスポート (servicenow-devops-config-export) GitHub アクションが提供されます。
DevOps コンフィグ検証 (servicenow-devops-config-validate)
ServiceNowインスタンスに構成データをアップロードして検証します。
- 入力引数
Argument Description (説明) instance-url ServiceNowインスタンスの URL です。 devops-integration-username DevOps コンフィグ 統合ユーザー名。 devops-integration-user-password DevOps コンフィグ 統合ユーザーパスワード。 application-name DevOps コンフィグ アプリケーション名。 target 構成ファイルがアップロードされるデータモデルターゲット。 データモデルのターゲットの例を次に示します。componentcollection展開可能
deployable-name DevOps コンフィグデータモデル内の展開可能項目名。 collection-name (オプション)データモデル内のコレクション名。ターゲットがコレクションの場合は必須です。 名前パス (オプション)名前 構成ファイルがアップロードされるデータモデル内のノードのパス。 config-file-path 単一のファイルをアップロードするときのファイルパス、または複数のファイルをデータモデルにアップロードするときの Ant スタイルパターンに基づくファイルパスパターン。Apache Ant.1.10.14 マニュアルドキュメントの Ant スタイルのパターンについては、ディレクトリベースのタスクを参照してください。 データ・フォーマット 構成ファイルのデータ形式。 データ形式の例は次のとおりです。CSVINIJSONプロパティRAWXMLYAML
データ形式属性 (オプション)構成データを解析するための拡張データ形式属性。 自動コミット アップロード成功後に構成データをコミットするためのブール値 (true または false) 入力。 デフォルト値:
True自動検証 コミット成功後に構成データを検証するためのブール値 (true または false) 入力。 デフォルト値:
True自動公開 検証成功後に構成データを公開するためのブール値 (true または false) 入力。 デフォルト値:
True変更セット (オプション)アップロードアクションに関連付けられたオープン変更セット。指定しない場合、新しい変更セットが作成されます。 snapshot-validation-timeout (オプション)アクションが失敗する前に検証が完了する最大時間 (分)。 デフォルト値:
60terminate-on-policy-validation-failures (オプション)ポリシー検証の失敗後に GitHub ワークフローを終了するためのブール値 (true または false) 入力。 デフォルト値:
false- 出力
- changeset-number
アップロードアクションに関連付けられた変更セット番号。
- snapshot-name
展開可能項目の最新のスナップショットの名前。
- validation-status
スナップショットの検証ステータス。例:
合格、passed_with_exception、不合格、execution_error、not_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 Description (説明) 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 (オプション)スナップショットデータをエクスポートする形式。 データ形式の例は次のとおりです。CSVINIJSONプロパティRAWXMLYAML
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