GitHub パイプラインアクション
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 構成ファイルのデータ形式。 データ形式の例:CSVINIJSONプロパティRAWXMLYAML
data-format-attribute (オプション)構成データを解析するための拡張データ形式属性。 自動コミット アップロードの成功後に構成データをコミットするためのブール値 (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 説明 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