JetBrains Space ヘルプ

パラメーターとシークレット

パラメーターは、ユーザーによって定義されるか、Automation によって提供される名前と値のペアです。パラメーターの主な目的は、さまざまなデータをジョブに渡すことです。例: これは、Docker イメージ名、URL、コマンドライン引数などです。あるいは、アクセストークンやパスワードである場合もあります。このような機密パラメーターはシークレットと呼ばれます。

ジョブでパラメーターを使用する

ジョブのパラメーターを取得するには、その名前を二重波括弧: "{{ my-param }}" 内の文字列で指定します。これは、 startOn git kotlinScript を除く、DSL ブロック内の任意の文字列で行うことができます。

スクリプトにパラメーターとして使用されない波括弧を含む文字列が含まれている場合は、\\{{ ... }} または {{ ... \\}} のようにエスケープする必要があります。

例: これはプロジェクトパラメーターを参照する方法です:

job("Use job parameters") { container("ubuntu") { // pass parameters as environment variables env["MY_PARAM"] = "{{ project:my-param }}" shellScript { content = """ # or use parameters in your shell scripts directly echo "My param is: {{ project:my-param }} """ } } }

job.parameters.text ブロックを使用して、ジョブ内でパラメーターを直接定義することもできます。

job("Parameterized build") { // Users will be able to redefine these parameters in custom job run. // See the 'Customize job run' section parameters { text("build-image", value = "amazoncorretto:17-alpine3.15") text("build-command", value = "build --no-configuration-cache") } container("{{ build-image }}") { shellScript { content = "./gradlew {{ build-command }}" } } }

ジョブでシークレットを使用する

パラメーターを参照するのと同じ方法でシークレットを参照できますが、場所は限られています。詳細

job("Use job secrets") { container("ubuntu") { // pass parameter as environment variable env["MY_SECRET"] = "{{ project:my-secret }}" shellScript { content = """ if [ ${'$'}MY_SECRET != "1234" ]; then echo "Wrong secret!" fi """ } } }

シークレットをファイルに保存することもできます。例: SSH キーを指定する方法は次のとおりです。

job("SSH auth") { parameters { // 'private-ssh-key' secret must be created in the project secret("private-key", "{{ project:private-ssh-key }}") } // this could be a 'container' step as well host { // First put the ssh file to the [[[default file repository|https://www.jetbrains.com/help/space/store-build-artifacts.html#default-file-repository]]] // Then you can get it using 'FileSource.Text' fileInput { source = FileSource.Text("{{ private-key }}") localPath = "/root/.ssh/id_rsa" } // here goes the rest of the script } }

kotlinScript でパラメーターとシークレットを使用する

kotlinScript ブロック内のパラメーターを取得するには、次のいずれかのオプションを使用します。

job("Use parameter in kotlinScript") { parameters { text("my-param", value = "ABC123") } container(displayName = "Get param value from env variable", image = "amazoncorretto:17-alpine") { env["MY_PARAM"] = "{{ my-param }}" kotlinScript { api -> val myParam = System.getenv("MY_PARAM") println( """ Get my-param value from env var - $myParam """ ) // Output: // Get my-param value from env var - ABC123 } } }

プロジェクト全体のパラメーターとシークレット

プロジェクトパラメーターは、プロジェクト内のすべてのオートメーションジョブ内で使用できます。プロジェクトパラメーターには次の 2 種類があります。

  • プレーンテキストパラメーター – 通常、これらはオートメーションスクリプト全体で頻繁に使用されるパラメーターです。例: 外部サービスの URL。

  • シークレット – AES 暗号化形式で保存されたパラメーター。例: 外部サービスへのパスワードまたはアクセストークン。自動化では、セキュリティ上の理由からジョブログ内のシークレット値が非表示になります。

    プロジェクトからシークレットを削除すると、シークレットはストレージから即座に削除されます (シークレットを使用する実行中のジョブがある場合、ジョブの実行が終了するとシークレットは削除されます)。

プロジェクトのシークレットとパラメーターを定義するには

  1. 目的のプロジェクトを開きます

  2. プロジェクトのサイドバーメニューで、設定を選択し、次にシークレットとパラメーターを選択します。

  3. 作成をクリックし、シークレットまたはパラメーターを選択します。

  4. 指定

    • キー : パラメーター名。この名前を使用して、スクリプト内でこのパラメーターを参照します。

    • : パラメーター値。

    制限:

    • シークレットとパラメーターは、特定のプロジェクトのスコープ内にのみ存在します。1 つのプロジェクトでシークレットまたはパラメーターを作成した場合、他のプロジェクトで使用することはできません。

    • シークレットとパラメーターのキーはプロジェクト内で一意である必要があります。同じキーを持つシークレットとパラメーターも許可されません。

    • キーは 128 文字以下である必要があり、英数字 ([a-z][A-Z][0-9])、ダッシュ (-)、またはアンダースコア (_) のみを含めることができます。

    • シークレットまたはパラメーターの値の最大サイズは 30KB です。すべてのコンテナー引数環境変数、シークレット、パラメーターの最大合計サイズも 30KB に制限されることに注意してください。例: 30KB のシークレットと 1KB の引数をステップに指定すると、ステップは失敗します。

プロジェクトのシークレットとパラメーターを使用するには

  1. ルールに従う:

    • プロジェクトパラメーターまたはシークレットを取得するには、そのキーの前に project: プレフィックス "{{ project:param-key }}" を付けて使用します。

    • シークレットは job.parametersjob.container.envjob.container.shellScript.argsjob.container.args ブロック内でのみ取得できます (同じことは、対応するすべての job.host ブロックを指します)。

    例:

    job("Use project params") { // E.g., a parameter and a secret // 'bintray-repo-url' and 'bintray-repo-password' // exist in the project settings parameters { // you can assign project secrets and params to configured params text("url", value = "{{ project:bintray-repo-url }}") secret("password", value = "{{ project:bintray-repo-password }}") } // Get project parameter values in a shell script container(displayName = "Print param value shell", image = "ubuntu") { env["URL"] = "{{ project:bintray-repo-url }}" // The only way to get a secret in a shell script is an env variable env["PSWRD"] = "{{ project:bintray-repo-password }}" shellScript { content = """ echo "Url from conf param - {{ url }}" echo "Url from env var - ${'$'}URL" echo "Password from env var - ${'$'}PSWRD" echo "Url from project param directly - {{ project:bintray-repo-url }}" # It's not possible to directly reference secrets from a shell script. # The next commented lines would fail. # echo "Password from conf param - {{ password }}" # echo "Password from project param - {{ project:bintray-repo-password }}" """ // Output: // Url from conf param - http://example.com // Url from env var - http://example.com // Password from env var - ***** // Url from project param directly - http://example.com } } // Get project parameter values in a Kotlin script container(displayName = "Print param value kotlin", image = "amazoncorretto:17-alpine") { env["URL"] = "{{ project:bintray-repo-url }}" env["PSWRD"] = "{{ project:bintray-repo-password }}" kotlinScript { api -> println("Url from env var - " + System.getenv("URL")) println("Url from API - " + api.parameters["url"]) println("Password from env var" + System.getenv("PSWRD")) // An advanced use case is the Ref class that holds a // reference to a secret or a parameter: // Ref("project:my-param").toString() == "{{ project:my-param }} // See the example below api.secrets["service-password"] = Ref("project:bintray-repo-password") println("Password from Ref" + api.secrets["service-password"]) // Output: // Url from env var - http://example.com // Url from env API - http://example.com // Password from env var - ***** // Password from Ref - ***** } } }
  2. 特定のシークレットまたはパラメーターがどのジョブで使用されているかを確認するには、プロジェクト設定でシークレットとパラメーターを開き、目的のシークレットまたはパラメーターの横にある使用箇所の表示をクリックします。

    Show usages of secrets and params
従来のシークレットとパラメーターからの移行

以前は、プロジェクトシークレットとパラメーターの値を取得するために Secrets 関数と Params 関数を使用できました。これらの関数は非推奨であり、将来削除される予定です。オートメーションスクリプトで Secrets または Params 関数を使用している場合は、job.parameters.secret および job.parameters.text ブロックに置き換えることを強くお勧めします。

従来のスクリプト

job("Legacy way to use secrets and params") { container(displayName = "Show pwd", image = "ubuntu") { env["URL"] = Params("bintray-repo-url") env["PSWRD"] = Secrets("bintray-repo-password") shellScript { content = """ echo My password for ${'$'}URL echo is ${'$'}PSWRD """ } } }

置換

job("New way to use secrets and params") { parameters { text("url", "{{ project:bintray-repo-url }}") secret("password", "{{ project:bintray-repo-password }}") } container(displayName = "Show pwd", image = "ubuntu") { env["URL"] = "{{ url }}" env["PSWRD"] = "{{ password }}" shellScript { content = """ echo My password for ${'$'}URL echo is ${'$'}PSWRD """ } } }

Custom Run でジョブをカスタマイズする

ユーザーは、スクリプトを実行する前にデフォルトのパラメーター値を変更できます。カスタマイズされたパラメーターを使用してジョブを実行するには、カスタムランオプションを使用する必要があります。

job.parameters.text 関数を使用すると、さまざまな型のカスタマイズ可能なパラメーターを定義できます。以下の表は、可能なオプションとカスタムランウィンドウでのそれらの表現を示しています。

// Simple text parameter with optional description text("text-param", value = "default-value", description = "This is a text param")
Text param
// Text parameter with no default value. The job will fail // if a user doesn't specify its value before a custom run text("param-no-default")
Param no default
// Multiline text parameter text("param-multiline", value = "default-value", multiline = true)
Param multiline
// Text parameter that doesn't allow changing its default value text("param-no-override", value = "non-overridable-value", allowCustomRunOverride = false)
Param no override
// Drop-down list of values text("param-options", value = "two") { options("one", "two", "three") }
Param options
// List with multiple value choice text("param-options-multiple-choice", value = "two") { options("one", "two", "three") { allowMultiple = true // optionally, you can specify how the values must be separated valueSeparator = "," } }
Param options multiple choice
// Project secret secret("token", value = "{{ project:auth-token }}", description = "Auth token")
Param password

例: カスタマイズ可能なデプロイスクリプトは次のようになります。

job("Deploy (custom run)") { startOn {} // disable automatic git push trigger // During a custom run, a user can choose between 'dev' and 'prod' values parameters { text("env", value = "dev") { options("dev", "prod") } } host(displayName = "Setup parameters") { kotlinScript { api -> val env = api.parameters["env"] when (env) { "dev" -> { api.parameters["target-url"] = "my-app.dev.com" // You can use the 'Ref' class to reference a parameter in 'kotlinScript' api.secrets["deploy-token"] = Ref("project:dev-deploy-token") } "prod" -> { api.parameters["target-url"] = "my-app.com" api.secrets["deploy-token"] = Ref("project:prod-deploy-token") } } } } host(displayName = "Deploying to {{ target-url }}") { env["TOKEN"] = "{{ deploy-token }}" shellScript { content = """ # do deploy.. """ } } }

ステップ間でパラメーターを渡す

場合によっては、実行コンテキスト (スクリプトの実行結果など) を 1 つのオートメーションステップから別のオートメーションステップに渡す必要があります。ステップ内からパラメーターまたはシークレットを作成するには、parameters API を使用する必要があります。API は kotlinScript ブロック内でのみ使用できます。ステップを実行するコンテナーには JRE/JDK 11 以降が含まれている必要があります。

job("Reuse params") { // create a parameter container(displayName = "Set param", image = "amazoncorretto:17-alpine") { kotlinScript { api -> api.parameters["myName"] = "Anna" // to delete a parameter, use api.parameters().remove(key: String) } } // get parameter value in a shell script container(displayName = "Get param shell", image = "ubuntu") { shellScript { content = """ echo Hi {{ myName }}! """ } // Output: // Hi Anna! } // get parameter value in Kotlin code container(displayName = "Get param kotlin", image = "amazoncorretto:17-alpine") { kotlinScript { api -> println("Hi ${api.parameters["myName"]}!") } // Output: // Hi Anna! } }

例: この機能を使用して、前のステップで構築されたイメージ内のステップを実行できます。

job("Reuse created image") { // run step on a self-hosted or cloud worker host(displayName = "Generate an image tag") { // use kotlinScript blocks for usage of parameters kotlinScript { api -> api.parameters["imageTag"] = api.gitRevision() } } host(displayName = "Publish image") { // publish image to Space Packages registry dockerBuildPush { push = true tags { +"{{ imageTag }}" } } } // use the newly-built image to run a step container(image = "registry.mycompany.jetbrains.space/p/projectName/containerRepo/myImage:{{ imageTag }}") { // ... } }

container ステップとは異なり、host ステップ内では、後続の多数のスクリプト (つまり、shellScript および kotlinScript ブロック) を実行できます。ただし、制限があります。スクリプト内で定義されたパラメーターには、同じ host ステップ内の後続のスクリプトではアクセスできません。例: 次のジョブは失敗します:

job("Parameter access with error") { host(displayName = "Generate and publish image with tag") { kotlinScript { api -> api.parameters["imageTag"] = api.gitRevision() // Parameter initialized } dockerBuildPush { push = true tags { +"{{ imageTag }}" // Error 'Failed to start "Generate and publish image with tag": Failed to resolve parameters: [imageTag]' // To fix this, move the `dockerBuildPush` block into a separate `host` step } } } }

パラメーターのフォールバック値

場合によっては、ジョブの実行中にパラメーター値が欠落することがあります。パラメーターが現在のコンテキストに存在しないか、空の文字列に解決される可能性があります。例: 通常、マージリクエストで実行されるジョブを作成する場合、{{ run:review.id }} のようなレビュー番号を参照できます。ただし、ジョブを手動で実行するか、別のトリガーを使用して実行すると、レビュー ID 値が欠落し、ジョブは失敗します。これを防ぐには、パラメーターのフォールバック値 {{ run:review.id ?: 'no-review'}} を指定します。レビュー ID が見つからない場合は、代わりに no-review フォールバック値が使用されます。

フォールバック値を指定する構文は {{ parameter-name ?: <fallback> }} です。ここで、fallback は、{{ param1 ?: param2 ?: 'If no params 1 and 2, this string will be the value' }} のようなフォールバックパラメーターまたは値のシーケンスを参照できるテンプレート式です。例:

job("Deploy") { // Users can explicitly specify release-version during Custom Run parameters { text("release-version", value = "") } container(image = "ubuntu") { shellScript { // If release-version is not specified, use the commit ID, otherwise use 'unknown-version' // If the job is triggered by a user, use the user ID, otherwise use 'anonymous' content = """ echo "Version: {{ release-version ?: run:git-checkout.commit ?: 'unknown-version' }}" >> manifest.txt echo "Author: {{ run:trigger.manual.user.id ?: 'anonymous' }}" >> manifest.txt echo Here goes the deployment script... """ } } }

kotlinScript では、ネイティブ Kotlin チェックを使用して null 可能性を確認できます。

val paramWithFallback = api.parameters["my-param"] ?: "fallback value"

ボールトパラメーター

Space は、独自のシークレットストレージに加えて、外部の HashiCorp Vault ストレージもサポートしています。Vault サーバーへの接続を設定すると、プロジェクトパラメーターを使用すると同じ方法でストレージの変数を使用できるようになります。

前提条件

AppRole(英語) が設定された動作中の Vault サーバーがあります。サーバーは、ビルドスクリプトに必要なシークレットを保存します。

Vault サーバーへの接続を設定するには

  1. 目的のプロジェクトを開きます

  2. プロジェクトのサイドバーメニューで、設定を選択し、次にボールト接続を選択します。

  3. 新規接続をクリックし、接続名前およびその他の設定を指定します。

    • ボールトの URL : https://vaultserver:port 形式の Vault サーバーの URL。

    • アプリロール ID および AppRole シークレット ID : Space が Vault サーバーにログインするために使用する資格情報(英語)

    • パラメーターの名前空間 : (オプション) 追加の接続識別子。プロジェクトに複数の Vault 接続がある場合、パラメーターの名前空間を使用して、特定のパラメーターを解決するためにどの接続を使用する必要があるかを指定できます。

    • ボールトの名前空間 : (オプション) マルチテナント Vault 構成で使用されるボールトの名前空間(英語)

  4. 接続のテスト」をクリックし、接続に成功したら「作成」をクリックします。

Vault パラメーターを作成するには

  1. 目的のプロジェクトを開きます

  2. プロジェクトのサイドバーメニューで、設定を選択し、次にシークレットとパラメーターを選択します。

  3. 作成をクリックし、ボールトパラメーターを選択します。

  4. 指定

    • キー : 変数名。この名前を使用して、スクリプト内でこの変数を参照します。

    • パス : Key/Value v1 または v2 シークレットエンジン形式の Vault シークレットパス。例: /aws/sts/mysecret

    • フィールド : (オプション) フィールド名。シークレットに複数のフィールドがある場合は、オートメーションジョブで取得する値のフィールドを指定します。シークレットに複数のフィールドがあるが、フィールド名を指定しない場合、オートメーションは value という名前のフィールドを取得しようとします。

    • 名前空間 : (オプション) パラメーターを解決する必要がある Vault 接続の識別子。名前空間は、Vault 接続に指定されたパラメーターの名前空間と一致する必要があります。

  5. 保存をクリックします。

ジョブで Vault パラメーターを使用するには

  1. ルールに従う:

    • プロジェクトパラメーターまたはシークレットを取得するには、vault:namespace:/secret_path/field_name 形式を使用します。例:

      • vault:/secret/password : password という名前のフィールドが 1 つだけあるシークレットの値を取得します。

      • vault:/secret/credentials!/password : /secret/credentials! シークレットの password フィールドの値を取得します。

      • vault:/secret/json!/store.books[0].category : JSON オブジェクトとして保存されている /secret/json シークレット内の JsonPath 検索クエリ (ドット表記) に対応する値を取得します。

      • vault:/secret/json!/['store'].['books'][0].['category'] : JSON オブジェクトとして格納されている /secret/json シークレット内の JsonPath 検索クエリ (括弧表記) に対応する値を取得します。

      • vault:test:/secret/credentials!/password : test パラメーターの名前空間を使用した Vault 接続を使用して、/secret/credentials シークレットの password フィールドの値を取得します。

    • Vault パラメーターは job.parametersjob.container.envjob.container.shellScript.argsjob.container.args ブロック内でのみ取得できます (同じことは、対応するすべての job.host ブロックを指します)。

    例:

    job("Build") { // reference `username` field of the `/secret/data/credentials!` secret // using the parameters block parameters { secret("username", "{{ vault:secret/data/credentials!/username }}") } container("ubuntu:latest") { // get Vault parameter directly env["PSWRD"] = "{{ vault:/secret/data/credentials!/password }}" // get Vault parameter from defined parameter env["USERNAME"] = "{{ username }}" shellScript { content = """ echo "Username from env var - ${'$'}USERNAME" echo "Password from env var - ${'$'}PSWRD" # It's not possible to directly reference secrets from a shell script. # The next commented lines would fail. # echo "Username from conf param - {{ username }}" """ } } }
  2. 特定の Vault パラメーターがどのジョブで使用されているかを確認するには、プロジェクト設定でシークレットとパラメーターを開き、目的のパラメーターの横にある使用箇所の表示をクリックします。

ジョブの実行後にパラメーター値を表示する

  1. プロジェクトに移動します。

  2. サイドバーメニューで、ジョブを選択します。

  3. ジョブを選択します。

  4. ジョブ内のすべてのパラメーターを表示するには、「パラメーター」タブを開きます。

    特定のステップのパラメーターを表示するには、「ステップ」タブを開き、特定のステップを選択して、その「パラメーター」タブを開きます。

提供されたパラメーターのリファレンス

オートメーションには、ジョブ実行番号、Git ブランチ名とコミット ID、Space インスタンスの URL など、ビルドスクリプトで使用できる事前定義されたパラメーターが多数用意されています。

指定されたパラメーターの値を取得するには、いくつかの方法があります (変数によっては、これらの方法の一部が使用できない場合があります)。

  • 事前定義されたパラメーター名 (例: "{{ run:number }}") を使用します。 kotlinScript では動作しません

  • 事前定義された環境変数を使用します。$JB_SPACE_EXECUTION_NUMBER

  • kotlinScript ブロック内:

    • 必要な変数値を返す API メソッド (例: api.executionNumber()) を使用します。対応する API メソッドは常に String 値を返します。

    • parameters API を使用して、パラメーター名 (例: api.parameters["run:number"]) によって値を取得します。

例:

job("Use configured parameter") { parameters { // assign a provided param to a configured param text("run-number-param", value = "{{ run:number }}") } container(displayName = "Print provided param value shell", image = "ubuntu") { shellScript { content = """ echo "Run number from env var - ${'$'}JB_SPACE_EXECUTION_NUMBER" echo "Run number from provided param - {{ run:number }}" echo "Run number from job param - {{ run-number-param }}" """ } // Output: // Run number from env var - 1 // Run number from provided param - 1 // Run number from job param - 1 } container(displayName = "Print provided param value kotlin", image = "amazoncorretto:17-alpine") { kotlinScript { api -> println("Run number from env var - " + System.getenv("JB_SPACE_EXECUTION_NUMBER")) println("Run number from API - " + api.executionNumber()) println("Run number from parameters API - " + api.parameters["run-number-param"]) } // Output: // Run number from env var - 1 // Run number from API - 1 // Run number from parameters API - 1 } }

定義済み名

説明

JetBrains Space インスタンスの URL。例: mycompany.jetbrains.space

  • 事前定義された環境変数: JB_SPACE_API_URL

  • kotlinScript API メソッド: spaceUrl()

{{run:project.id}}

現在のプロジェクトの ID。

  • 事前定義された環境変数: JB_SPACE_PROJECT_ID

  • kotlinScript API メソッド: projectId()

{{run:project_key}}

現在のプロジェクトのキー。

  • 事前定義された環境変数: JB_SPACE_PROJECT_KEY

  • kotlinScript API メソッド: projectKey()

{{run:file-caches.default-repository}}

デフォルトのキャッシュリポジトリの名前。

現在のスクリプトに対して発行される一時的な OAuth 2.0 アクセストークン。スクリプトはこれを使用して、さまざまな Space モジュールでの認証を行うことができます。例: これを使用して、ビルドアーティファクトを公開するために、パッケージリポジトリ内のスクリプトを承認できます。

  • 事前定義された環境変数: JB_SPACE_CLIENT_TOKEN

  • kotlinScript API メソッド: spaceClientToken()

アクセストークンの代わりに、スクリプトは一時的な OAuth 2.0 認証情報を使用して認証できます。

  • 事前定義された環境変数: JB_SPACE_CLIENT_ID , JB_SPACE_CLIENT_SECRET

  • kotlinScript API メソッド: spaceClientId() , spaceClientSecret()

{{run:git-checkout.commit}}

現在の Git コミット ID。

  • 事前定義された環境変数: JB_SPACE_GIT_REVISION

  • kotlinScript API メソッド: gitRevision()

{{run:git-checkout.ref}}

現行の Git ブランチ。

  • 事前定義された環境変数: JB_SPACE_GIT_BRANCH

  • kotlinScript API メソッド: gitBranch()

{{run:git-checkout.repositories}}

チェックアウトされたリポジトリのコンマ区切りリスト:

  • 現在実行中の .space.kts ファイルを含む Git リポジトリ。

  • すべての追加リポジトリ

  • 事前定義された環境変数: JB_SPACE_GIT_REPOSITORY_NAME

  • kotlinScript API メソッド: gitRepositoryName()

{{run:trigger.type}}

ジョブの実行を開始するために使用されるトリガー。可能な値: manualgit-pushschedulegit-branch-deletedcode-review-openedcode-review-closedsafe-merge

{{run:trigger.manual.user.id}}

ジョブの実行をトリガーしたユーザーの ID。ジョブが Space ユーザーによって手動で実行された場合にのみ関係します。

{{run:trigger.manual.application.id}}

ジョブの実行をトリガーしたアプリケーションの ID。登録されたアプリケーションからの HTTP API 呼び出しによってジョブが実行された場合にのみ関係します。

{{run:trigger.safe-merge.user.id}}

セーフマージ実行をトリガーしたユーザーの ID。セーフマージジョブが Space ユーザーによって手動で実行された場合にのみ関係します。

{{run:trigger.manual.git-checkout.ref}}

現行の Git ブランチ。ユーザーがカスタム実行中に特定のコミットを選択した場合にのみ関係します。

{{run:trigger.manual.git-checkout.commit}}

現在の Git コミット ID。ユーザーがカスタム実行中に特定のコミットを選択した場合にのみ関係します。

{{run:trigger.git-push.commit}}

ジョブの実行をトリガーしたコミットの ID。gitPush トリガーが有効な場合にのみ関連します。

{{run:trigger.git-push.commit-before}}

このプッシュの前に ref が指していたコミットの ID。gitPush トリガーが有効な場合にのみ関連します。

{{run:trigger.git-push.ref}}

ジョブの実行をトリガーしたブランチ。gitPush トリガーが有効な場合にのみ関連します。

{{run:trigger.git-push.repository}}

ジョブの実行をトリガーしたリポジトリ。gitPush トリガーが有効な場合にのみ関連します。

{{run:trigger.git-branch-deleted.refs}}

削除されたブランチ / タグのリスト。gitBranchDeleted トリガーが有効な場合にのみ関連します。コンマは区切り文字として使用されます (例: refs/heads/branch1,refs/tags/v1-dev)。

{{run:trigger.code-review-opened.review.id}} , {{run:trigger.code-review-closed.review.id}}

ジョブの実行をトリガーしたレビューの ID。codeReviewOpened または codeReviewClosed トリガーが有効な場合にのみ関係します。

{{run:trigger.code-review-opened.source.ref}} , {{run:trigger.code-review-closed.source.ref}}

コードレビューを経たブランチ。codeReviewOpened または codeReviewClosed トリガーが有効な場合にのみ関係します。

{{run:run:trigger.code-review-opened.source.commit}} , {{run:run:trigger.code-review-closed.source.commit}}

コードレビューを通過するコミットの ID。codeReviewOpened または codeReviewClosed トリガーが有効な場合にのみ関係します。

{{run:trigger.code-review-opened.target.ref}} , {{run:trigger.code-review-closed.target.ref}}

コードレビュー後に変更がマージされることになるブランチ。codeReviewOpened または codeReviewClosed トリガーが有効な場合にのみ関係します。

{{run:run:trigger.code-review-opened.target.commit}} , {{run:run:trigger.code-review-closed.target.commit}}

コードレビュー後にマージされるコミットの ID。codeReviewOpened または codeReviewClosed トリガーが有効な場合にのみ関係します。

{{run:review.id}} ,

ジョブの実行をトリガーしたレビューの ID。codeReviewOpenedcodeReviewClosedgitPush (マージリクエスト内) マニュアル (マージリクエストページから)、または safeMerge トリガーが有効な場合にのみ関連します。

{{run:review.source.ref}} ,

コードレビューを経たブランチ。codeReviewOpenedcodeReviewClosedgitPush (マージリクエスト内) 手動 (マージリクエストから)、または safeMerge トリガーが有効な場合にのみ関連します。

{{run:review.source.commit}} ,

コードレビューを通過するコミットの ID。codeReviewOpenedcodeReviewClosedgitPush (マージリクエスト内) 手動 (マージリクエストから)、または safeMerge トリガーが有効な場合にのみ関連します。

{{run:review.target.ref}} ,

コードレビュー後に変更がマージされることになるブランチ。codeReviewOpenedcodeReviewClosedgitPush (マージリクエスト内) 手動 (マージリクエストから)、または safeMerge トリガーが有効な場合にのみ関連します。

{{run:review.target.commit}} ,

コードレビュー後にマージされるコミットの ID。codeReviewOpenedcodeReviewClosedgitPush (マージリクエスト内) 手動 (マージリクエストから)、または safeMerge トリガーが有効な場合にのみ関連します。

{{run:review.number}} ,

プロジェクト内のマージリクエスト番号。codeReviewOpenedcodeReviewClosedgitPush (マージリクエスト内) 手動 (マージリクエストから)、または safeMerge トリガーが有効な場合にのみ関連します。

{{run:id}}

現在の実行 (ビルド) の一意の ID。これを使用して、Space API を使用して特定のビルドを参照できます。

  • 事前定義された環境変数: JB_SPACE_EXECUTION_ID

  • kotlinScript API メソッド: executionId()

{{run:job.id}}

現在のジョブの一意の ID。

{{run:job.repository}}

現在の .space.kts が定義されている Git リポジトリの名前。

{{run:number}}

現在のジョブの実行番号 (ビルド番号)。例: アプリケーションのバージョン番号を生成するために使用できます。詳細

  • 事前定義された環境変数: JB_SPACE_EXECUTION_NUMBER

  • kotlinScript API メソッド: executionNumber()

{{run:url}}

現在のジョブ実行へのリンク。

  • 事前定義された環境変数: JB_SPACE_EXECUTION_URL

  • kotlinScript API メソッド: executionUrl()

ワーカーに割り当てられた JetBrains Space インスタンスの URL。例: mycompany.jetbrains.space

  • 事前定義された環境変数: SPACE_WORKER_SERVERURL

ワーカーに対して発行される認証トークン。ワーカーは、これを使用して Space での認証を行います。

  • 事前定義された環境変数: SPACE_WORKER_TOKEN

スクリプトがすべての必要なデータ (プロジェクトソース、ファイル共有、オートメーション固有のデータ) をダウンロードするディレクトリへのパス。

  • 事前定義された環境変数: SPACE_WORKER_DATADIR

ワーカーのホスト名。

  • 事前定義された環境変数: SPACE_WORKER_HOSTNAME

{{worker:cpu}} , {{worker:memory}}

ワーカーエージェントを実行するホストマシンで利用可能なシステムリソース: CPU コア (mCPU)、RAM (MB)。

  • 事前定義された環境変数: SPACE_WORKER_CPU , SPACE_WORKER_MEM

{{worker:hostname}}

ワーカーマシンのホスト名。

{{worker:os.arch}}{{worker:os.name}}{{worker:os.version}}

ワーカーのオペレーティングシステム (OS) のターゲット CPU アーキテクチャ、OS タイプ、OS バージョン。

関連ページ:

DSL リファレンス

オートメーション DSL は、Space オートメーションスクリプトの作成を支援することを目的としたドメイン固有の言語です。DSL は Kotlin プログラミング言語に基づいています。これは、スクリプト内で Kotlin データ型と言語構造を使用できることを意味します。作業:は、ステップで構成される定義済みタスクです。はジョブの名前ですは作業内容です例:job("Hello World!") { container(image = "hello-world") }job.requirement...

プロジェクトに参加する

あるプロジェクトに貢献を開始したい場合は、そのプロジェクトに参加する必要があります。つまり、そのプロジェクトのメンバーになる必要があります。貢献しようとしているプロジェクトに移動します。すでにメンバーである場合は、プロジェクトのページのプロジェクトメンバーにリストされます。そうでない場合は、プロジェクト管理者に連絡してメンバーシップを依頼してください。プロジェクト管理者を確認するには、プロジェクトページでメンバーウィジェットをクリックします。プロジェクトを探す:すべてのプロジェクトは名前で見つ

ジョブの表示、実行、停止、サブスクライブ

プロジェクトのジョブページでは、ジョブの実行と停止、現在のジョブの実行進行状況と実行結果の表示、およびジョブ通知のサブスクライブを行うことができます。ジョブの実行結果を表示する:プロジェクトに移動します。サイドバーメニューで、ジョブを選択します。必要なリポジトリとブランチが選択されていることを確認してください。このページには、プロジェクト内のすべてのジョブのリストとその実行結果が表示されます。ここでは、たとえば次のような場合にジョブフィルターを適用することもできます。実物のみジョブを残す: 自...

Gradle プロジェクトからアーティファクトを公開する

Gradle ビルドツールを使用するプロジェクトがあり、以下を使用して新しく作成された Maven リポジトリにプロジェクトアーティファクトを公開するとします。Gradle コマンドラインツール ,、JetBrains TeamCity,、Space Automation.、同じパッケージバージョンのアーティファクトを公開することは許可されていないことに注意してください。サーバーは 409 HTTP 応答を返します。唯一の例外: プレフィックスを持つアーティファクトは、スナップショットサポートが有効...

ジョブ実行のトリガー

自動化は次のジョブトリガーをサポートします。デフォルトで有効になっています。ユーザーが参照 (ブランチ、タグ、コミット、その他の Git 参照) をプロジェクトリポジトリにプッシュした後にジョブを実行します。の範囲を制限して、プロジェクトリポジトリ内の変更ではなく特定のブランチ、タグ、ディレクトリ、ファイルの変更についてのみがトリガーされるようにすることができます。マルチリポジトリプロジェクトがある場合は、特定のリポジトリ内の変更に対してジョブを実行するようにトリガーを設定できます。詳細 |DSL...