JetBrains Space ヘルプ

デプロイ

デプロイは、ソースコードの変更を Space からデプロイ環境 (オートメーションの観点からはデプロイターゲット ) に配信します。例: Space を使用して Web アプリケーションを開発します。環境はステージングサーバーと運用サーバーで構成されます。これらのサーバーはデプロイターゲットです。新しいアプリケーションバージョンを特定のサーバーに配信するプロセスはデプロイです。

デプロイの主なゴールは、製品のリリースライフサイクルをより透明にすることです。

  • デプロイターゲット (Web、デスクトップ、クラウド、モバイルなど) の事前定義リストを使用すると、製品がどこにデプロイされているかを常に把握できます。デプロイスケジュールを使用すると、製品をデプロイする頻度を計画できます。

  • デプロイを使用すると、どの製品バージョンが現在運用されているのか、どのくらいの期間運用されているのか、運用バージョンのデプロイにどの特定のコミットが使用されたのか、以前のバージョンと現在のバージョン間の変更履歴などを確認できます。

  • (まだ利用できません) 将来的には、デプロイはターゲットのヘルスチェックを実行できるようになります。デプロイターゲットの現在のステータスを受信し、インシデントを報告します。

Deployments example

デプロイターゲットとデプロイターゲットは単なる抽象化であることに注意してください。これらを使用すると、パッケージリポジトリ、デスクトップ、モバイルアプリケーションに公開されたパッケージの最新バージョンなど、あらゆるものを追跡できます。Kubernetes クラスター、クラウド、ローカル Web サーバーなどにデプロイされた Web アプリケーション。

デプロイおよび CI/CD パイプライン

デプロイは、既存の CI/CD パイプラインへの追加および継続です。デプロイはそれ自体では CI/CD タスクを実行しません: コードをコンパイルしたり、ビルドアーティファクトを外部サーバーに公開したりすることはありません。デプロイは、CI/CD ツールから更新を受信することによってデプロイステータスを追跡するステートマシンにすぎません。ステータス更新を送信するために、CI/CD ツールは space コマンドラインツールまたは Space HTTP API を使用できます。実際には、これは、デプロイが、Space Automation であっても、JetBrains TeamCity、Jenkins、GitHub アクションなどの外部 CI/CD サーバーであっても、あらゆる CI/CD ツールと連携できることを意味します。

デプロイワークフローは、企業内でのリリースプロセスの編成方法によって異なる場合があります。例: すべてのデプロイ状態を含むワークフローは次のようになります。

Deployment state machine
  1. 開発者はリリースブランチにコミットをプッシュします。

  2. CI/CD ツールは、Space にデプロイを作成します。デプロイはスケジュールされたステータスを持ちます。

  3. CI/CD ツールはビルドプロセスを開始し、デプロイステータスをデプロイ中に変更します。

  4. デプロイが完了すると、CI/CD ツールはデプロイステータスを current に変更します。

  5. 現行バージョンが完成となります。

始めるにあたって、すべての状態を使用する必要はありません。あなたの場合には役に立たない状態を省略することができます。

デプロイを始めるには

前提条件: リリースブランチからデプロイ環境に変更を配信する既存の CI/CD パイプラインがあります。

  1. デプロイターゲットを作成します

  2. Space 認証トークンを取得します。CI/CD ツールが Space でデプロイステータスを変更できるようにするには、このトークンが必要です。

  3. 既存の CI/CD パイプラインに、デプロイ状態のデプロイを作成するビルドステップを追加します。ビルドが完了したら、現在のデプロイステータスを変更するビルドステップを追加します。

  4. 必要に応じてワークフローを改善します。例:

    • CI/CD ツールを使用して、新しいデプロイをスケジュールします。

    • デプロイに時間がかかる場合は、現在のデプロイ状況だけでなくデプロイ状況も報告してください。

    • 他の状態のレポートを追加します。

デプロイおよびブランチ

デプロイの概念は、Git ブランチに対してデプロイは 1 つだけ存在できることを意味します。デプロイを作成または更新するときは、Git ブランチまたは特定のコミット ID を指定する必要があります。

デプロイステータス

デプロイライフサイクルには次の段階が含まれます。

予定

デプロイには新しいバージョンが予定されています。

配備する

デプロイは進行中です。このステータスは手動で設定することも、ビルドの開始後に CI/CD ツールで設定することもできます。

現在

CI/CD ツールは、新しいバージョンをデプロイターゲットにデプロイしました。このステータスは手動で設定することも、ビルドの補完後に CI/CD ツールで設定することもできます。

ぶら下がっている

デプロイステータスで費やした時間が、指定されたタイムアウト (デフォルトは 30 分) を超えています。Space はこのステータスを自動的に設定できます (デフォルトでは無効)。

失敗

CI/CD ツールは新しいバージョンのデプロイに失敗しました。CI/CD ツールは、ビルドが失敗したときにこのステータスを設定できます。または、Space は、指定されたタイムアウト (デフォルトは 120 分) 後にこのステータスを自動的に設定します (デフォルトでは無効)。

完了しました

古いバージョンで成功したデプロイは、新しいバージョンが最新になった後、自動的にこのステータスを取得します。

デプロイターゲットタイムラインでデプロイステータスを追跡できます。

デプロイターゲットの作成と編集

デプロイターゲットを作成するには

  1. プロジェクトに移動するデプロイターゲットを作成する場所。

  2. プロジェクトのサイドバーで、デプロイを選択します。

  3. 新規ターゲットをクリックします。

  4. 新規ターゲットページで、名前説明、その他の設定を指定します。

    • キー : HTTP リクエストまたはオートメーションジョブでターゲットを指定するために使用する一意の識別子。

    • リポジトリ : デプロイするコードを含む Git リポジトリ。

  5. 作成をクリックします。

デプロイターゲット設定を編集するには

  1. プロジェクトのデプロイページを開いてから、デプロイターゲットを開きます。

  2. 詳細」ページで、名前や関連するリポジトリなどの基本的なターゲット設定を編集します。

  3. スケジュールページで、次の設定を指定します。

    • 手動コントロールを表示する : デプロイページでデプロイステータスを手動で変更できるかどうかを定義します。

    • 自動的に吊り下げ状態に設定されます : X 分後で指定された時間内にデプロイのステータスが変更されない場合、Space はデプロイのステータスを Hanging に変更します。

    • 自動的に失敗状態に設定される : X 分後で指定された時間内にデプロイのステータスが変更されない場合、Space はデプロイステータスを failed に変更します。

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

Space 認証トークンを取得する

Space でデプロイステータスを変更するには、CI/CD ツールに Space 認証トークンが必要です。これを取得するには、Space で新しいアプリケーションを作成し、デプロイを操作するためのアクセス許可を付与する必要があります。

Space Automation ジョブからデプロイを使用する場合は、Space 認証トークンを作成する必要がないことに注意してください。Space Automation は、必要な権限をすでに持っている特別なアカウントを使用します。

  1. メインメニューで、 Extensions 拡張をクリックし、組織にインストールを選択します。

  2. 新しいアプリをクリックします。

  3. アプリケーションに一意の名前を付け、「作成」をクリックし、次に「アプリケーション設定に移動します」をクリックします。

  4. 許可」タブを開きます。コンテキスト内認証プロジェクトで承認をクリックします。

  5. プロジェクトで承認」ウィンドウでプロジェクトを指定し、「許可」をクリックします。

  6. 構成をクリックし、権限のリストで必要な権限を有効にします。

    • デプロイを見る : 特定のターゲットのデプロイをリストします。

    • デプロイを変更する : デプロイステータスを変更します。

    • デプロイターゲットを変更する : デプロイターゲット設定を変更します。通常、CI/CD ツールにはこの権限は必要ありません。

    保存をクリックします。

  7. プロジェクト管理者の場合、権限リクエストは自動的に承認されます。それ以外の場合は、管理者がリクエストを承認するまで待つ必要があります。

    Deployments. App permissions
  8. アプリケーションのメイン設定ページに戻り、永久トークンタブを開きます。

  9. 新しい永久トークンをクリックし、トークン名とその有効期限を指定します。

  10. 作成をクリックし、トークン値をコピーし、安全な場所に保存します。次にこのセクションでは、このトークンを space_auth_token と呼びます。

デプロイをスケジュールする

デプロイをスケジュールするとは、スケジュールされた状態でデプロイを作成することを意味します。

デプロイはプロジェクト Git ブランチに関連付けられています。デプロイをスケジュールするときは、デプロイのリポジトリとブランチを指定する必要があります。オプションで、特定のコミット ID を指定できます。

ワークフローに応じて、Space コマンドラインツール、Space Automation、または Space API を使用して、新しいデプロイを手動で作成できます。

デプロイをスケジュールするには

  1. Space コマンドラインツールを使用して https://public.registry.jetbrains.space/p/space/containers/space-cli:latest から Docker イメージを取得します。

  2. コマンドラインツールを Space に接続します。

    ./space configure https://mycompany.jetbrains.space space_auth_token

    ここで、https://mycompany.jetbrains.space は Space インスタンスの URL で、space_auth_tokenSpace 認証トークンです。これを行う必要があるのは 1 回だけです。ツールは、提供された設定をローカルの ~/.space/client-config ファイルに保存します。

  3. schedule コマンドを使用して、デプロイをスケジュールします。通常、このコマンドはデプロイビルドの一部として CI/CD ツールによって実行する必要があります。例:

    ./space deployments schedule MY-WEB-APPLICATION production-server --version $DEPLOYMENT_VERSION --commit $DEPLOYMENT_COMMIT --ext-label 'My CI/CD service' --ext-url https://mycicdservice.url

    ここに:

    • MY-WEB-APPLICATION : プロジェクト識別子 (Space でプロジェクトを作成するときにプロジェクトに割り当てられます)。

    • production-server : デプロイターゲットの名前。

    • $DEPLOYMENT_VERSION および $DEPLOYMENT_COMMIT : ターゲットにデプロイするバージョンとコミット。

      特定のコミットを指定するには、次の形式 <repo>:<branch>:<commitID> を使用します。ここで、<repo><branch> は必須であり、<commitID> はオプションです。例: mywebapp:main:538dc16b 最新のコミットを使用するには、HEAD を指定します。

      スケジュールされた状態にあるこのブランチに既存のデプロイがある場合、./space deployments schedule コマンドはこのデプロイを更新します。そのようなデプロイが存在しない場合は、新しいデプロイが作成されます。

    • --ext-label および --ext-url では、デプロイを実行する CI/CD ツールの名前と URL を指定できます。例: これは、対応する CI/CD ビルド、デプロイターゲット、またはその他のものへのリンクである可能性があります。このリンクは、デプロイの隣の Space に表示されます。

    space コマンドの詳細については、次を実行してください。

    ./space deployments --help

デプロイをスケジュールするには

  • オートメーションジョブで Space SDK クライアントを使用します。例:

    job("Deploy") { container("Run deploy script", image = "gradle:7.1-jre11") { kotlinScript { api -> // ... api.space().projects.automation.deployments.schedule( // get id of the current project project = api.projectIdentifier(), // deployment target name targetIdentifier = TargetIdentifier.Key("production-server"), version = "1.0.0", externalLinkLabel = "My CI/CD service", externalLinkUrl = "https://mycicdservice.url" // commitRefs is not required // the deployment will get the ID of the current commit - // the one that contains the currently running .space.kts ) } } }

デプロイをスケジュールするには

  • POST リクエストを deployments/schedule エンドポイントに送信します。例:

    POST https://mycompany.jetbrains.space/api/http/projects/id:project-id/automation/deployments/start Authorization: Bearer [[[space_auth_token|https://www.jetbrains.com/help/space/deployments.html#obtaining-a-space-access-token]]] Accept: application/json Content-Type: application/json { "targetIdentifier": "key:production-server", "version": "1.0.0", "commitRefs": [ { "repositoryName": "my-web-app", "branch": "release", "commit": "abc1234" } ] }

デプロイをスケジュールするには

  1. プロジェクトのデプロイページを開いてから、デプロイターゲットを開きます。

  2. 新しいデプロイを作成するデプロイターゲットを開きます。

  3. 新規をクリックし、デプロイを選択します。

  4. 新規デプロイメントページで:

    • ターゲットにデプロイされるバージョンを指定します。

    • リポジトリ名で、ブランチを選択し、必要に応じて、デプロイするコミットを選択します。このブランチにまだ変更がある可能性がある場合は、特定のコミットの代わりに最新を選択できます。

    • 状況では、予定通りに出発します。

    • スケジュールには、デプロイの日付と時刻を指定します。

    • 表示オプションで、デプロイの説明を入力し、デプロイに関連付ける外部リンクを指定できます。例: これは、対応する CI/CD ビルド、デプロイターゲット、またはその他のものへのリンクである可能性があります。このリンクは、デプロイの隣の Space に表示されます。

  5. 作成をクリックします。

デプロイを始める

デプロイを開始するということは、既存のデプロイのステータスを「スケジュール済み」から「デプロイ中」に変更することを意味します。デプロイターゲットには、デプロイステータスを持つデプロイを一度に 1 つだけ含めることができます。このようなデプロイが存在する場合、デプロイを開始するリクエストにより既存のデプロイが更新されます。

デプロイを開始するリクエストを送信した後、次のようにします。

  1. Space は、設定に同じ Git ブランチを持つ、スケジュールされた既存のデプロイを探します。

  2. そのようなデプロイが見つかった場合、Space はそのステータスをデプロイ中に変更します。特定のコミット ID は、既存のスケジュールされたデプロイまたはリクエストのいずれかで指定する必要があることに注意してください。

  3. スケジュールされたデプロイがない場合、またはコミット ID が指定されていない場合、リクエストは失敗します。

ワークフローに応じて、Space コマンドラインツール、Space Automation、または Space API を使用して、Space でデプロイを手動で開始できます。

デプロイを開始するには

  1. Space コマンドラインツールを使用して https://public.registry.jetbrains.space/p/space/containers/space-cli:latest から Docker イメージを取得します。

  2. コマンドラインツールを Space に接続します。

    ./space configure https://mycompany.jetbrains.space space_auth_token

    ここで、https://mycompany.jetbrains.space は Space インスタンスの URL で、space_auth_tokenSpace 認証トークンです。これを行う必要があるのは 1 回だけです。ツールは、提供された設定をローカルの ~/.space/client-config ファイルに保存します。

  3. start コマンドを使用して、デプロイステータスをデプロイ中に変更します。例:

    ./space deployments start MY-WEB-APPLICATION production-server --version $DEPLOYMENT_VERSION --commit $DEPLOYMENT_COMMIT

    ここに:

    • MY-WEB-APPLICATION : プロジェクト識別子 (Space でプロジェクトを作成するときにプロジェクトに割り当てられます)。

    • production-server : デプロイターゲットの名前。

    • $DEPLOYMENT_VERSION および $DEPLOYMENT_COMMIT : ターゲットにデプロイするバージョンとコミット。

      特定のコミットを指定するには、次の形式 <repo>:<branch>:<commitID> を使用します。例: mywebapp:main:538dc16b

      スケジュールされたデプロイに他のコミット ID またはバージョンが指定されている場合、リクエストによってそれらが更新されます。例: コミット mywebapp:main:abc1234 に基づいて、バージョン 1.0.0 のデプロイをスケジュールしました。./space deployments start ... 1.0.1 mywebapp:main:def5678 を実行すると、Space のデプロイはコミット ID を def5678 に、バージョンを 1.0.1 に変更します。

    space コマンドの詳細については、次を実行してください。

    ./space deployments --help

デプロイを開始するには

  • オートメーションジョブで Space SDK クライアントを使用します。例:

    job("Deploy") { container("Run deploy script", image = "gradle:7.1-jre11") { kotlinScript { api -> // ... api.space().projects.automation.deployments.start( // get id of the current project project = api.projectIdentifier(), // deployment target name targetIdentifier = TargetIdentifier.Id("production-server"), version = "1.0.0", // With syncWithAutomationJob = true, // Space will automatically change deployment status // based on the job execution result. // If the job fails, the deployment fails as well. // If the job is successful, the deployment becomes 'current'. syncWithAutomationJob = true // commitRefs is not required // the deployment will get the ID of the current commit - // the one that contains the currently running .space.kts ) } } }

デプロイを開始するには

  • POST リクエストを deployments/start エンドポイントに送信します。例:

    POST https://mycompany.jetbrains.space/api/http/projects/id:project-id/automation/deployments/start Authorization: Bearer [[[space_auth_token|https://www.jetbrains.com/help/space/deployments.html#obtaining-a-space-access-token]]] Accept: application/json Content-Type: application/json { "targetIdentifier": "id:production-server", "version": "1.0.0", "commitRefs": [ { "repositoryName": "my-web-app", "branch": "release", "commit": "abc1234" } ] }

デプロイを開始するには

  1. プロジェクトのデプロイページを開いてから、デプロイターゲットを開きます。

  2. デプロイターゲットを開きます。

  3. スケジュールされたデプロイを見つけて、ドロップダウンリストからデプロイステータスを選択します。

    Change deployment status manually

デプロイを完了または失敗する

デプロイを終了するということは、デプロイのステータスを current に変更することを意味します。最初は、デプロイはデプロイ中またはスケジュール済みの状態でなければなりません。現在のステータスで新しいデプロイを作成することもできます。何らかの理由でデプロイスクリプトが失敗した場合は、デプロイも失敗させることができます。つまり、ステータスを failed に変更します。デプロイターゲットは、現在のステータスを持つデプロイを一度に 1 つだけ持つことができます。

デプロイを終了するリクエストを送信した後:

  1. Space は、設定に同じ Git ブランチを持つ、デプロイ中の既存のデプロイを探します。

  2. そのようなデプロイが見つかった場合、Space はステータスを current に変更します。

  3. デプロイ中のデプロイが見つからない場合、Space は同じ Git ブランチとコミット ID を持つ既存のスケジュールされたデプロイを探します。

  4. このようなスケジュールされたデプロイが見つかった場合、Space はステータスを current に変更します。

  5. それ以外の場合、Space は現在のステータスで新しいデプロイを作成します。

  6. 現在のステータスの既存のデプロイが存在する場合、そのステータスは completed に変更されます。

ワークフローに応じて、Space コマンドラインツール、Space Automation、または Space API を使用して、Space でデプロイを手動で終了できます。

デプロイを終了するには

  1. Space コマンドラインツールを使用して https://public.registry.jetbrains.space/p/space/containers/space-cli:latest から Docker イメージを取得します。

  2. コマンドラインツールを Space に接続します。

    ./space configure https://mycompany.jetbrains.space space_auth_token

    ここで、https://mycompany.jetbrains.space は Space インスタンスの URL で、space_auth_tokenSpace 認証トークンです。これを行う必要があるのは 1 回だけです。ツールは、提供された設定をローカルの ~/.space/client-config ファイルに保存します。

  3. finish コマンドを使用して、デプロイステータスをデプロイ中に変更します。例:

    ./space deployments finish MY-WEB-APPLICATION production-server --version $DEPLOYMENT_VERSION --commit $DEPLOYMENT_COMMIT

    ここに:

    • MY-WEB-APPLICATION : プロジェクト識別子 (Space でプロジェクトを作成するときにプロジェクトに割り当てられます)。

    • production-server : デプロイターゲットの名前。

    • $DEPLOYMENT_VERSION および $DEPLOYMENT_COMMIT : ターゲットにデプロイするバージョンとコミット。

      特定のコミットを指定するには、次の形式 <repo>:<branch>:<commitID> を使用します。例: mywebapp:main:538dc16b

    デプロイを失敗させるには、fail コマンドを使用します。例:

    ./space deployments fail MY-WEB-APPLICATION production-server --version $DEPLOYMENT_VERSION --commit $DEPLOYMENT_COMMIT

    space コマンドの詳細については、次を実行してください。

    ./space deployments --help

デプロイを終了するには

  • オートメーションジョブで Space SDK クライアントを使用します。例:

    job("Deploy") { container("Run deploy script", image = "gradle:7.1-jre11") { kotlinScript { api -> // ... api.space().projects.automation.deployments.finish( // get id of the current project project = api.projectIdentifier(), targetIdentifier = TargetIdentifier.Key("production-server"), version = "1.0.0" // commitRefs is not required // the deployment will get the ID of the current commit - // the one that contains the currently running .space.kts ) // to fail the deployment, use ...deployments.fail() } } }

デプロイを終了するには

  • POST リクエストを deployments/finish または deployments/fail エンドポイントに送信します。例:

    POST https://mycompany.jetbrains.space/api/http/projects/id:project-id/automation/deployments/finish Authorization: Bearer [[[space_auth_token|https://www.jetbrains.com/help/space/deployments.html#obtaining-a-space-access-token]]] Accept: application/json Content-Type: application/json { "targetIdentifier": "key:production-server", "version": "1.0.0", "commitRefs": [ { "repositoryName": "my-web-app", "branch": "release" } ] }

デプロイを終了するには

  1. プロジェクトのデプロイページを開いてから、デプロイターゲットを開きます。

  2. デプロイターゲットを開きます。

  3. デプロイがすでに存在する場合は、それを見つけて、ドロップダウンリストから現在のステータスまたは失敗したステータスを選択します。

    Finish deployment

    既存のデプロイがない場合は、現在のステータスで新しいデプロイを作成します

デプロイターゲット通知を購読する

デプロイターゲットには、本質的にデプロイログであるタイムラインがあります。

Deployment Timeline

デプロイターゲット通知をサブスクライブするには、ターゲットを開き、タイムラインタブで Subscribe サブスクライブボタンをクリックします。通知は個人の Space ボックスチャネルで受信します。デフォルトでは、デプロイが現在のステータスを取得した場合にのみ通知されることに注意してください。個人購読で他の状態に関する通知を購読できます。

デプロイの詳細を表示し、設定を変更する

  1. 必要なデプロイターゲットを見つけて開きます。デプロイがリストに表示されます。

    Commit ID for a deployment
  2. 必要なデプロイを見つけて、バージョン番号をクリックします。これにより、タブで構成されるデプロイ詳細ページが開きます。

    • 概要 : デプロイの一般的な情報。

    • タイムライン : デプロイの状態変化を確認したり、他のプロジェクトメンバーとコミュニケーションしたりできる専用のチャットチャネル。

    • コミット数 : は、以前に成功したデプロイと比較した新しいコミットのリストを示しています。

      さらに、Git リポジトリ内のコミットには、特定のデプロイに使用されたかどうかに関する情報も含まれます。この情報を取得するには、コミットを見つけてそのデプロイタブを開きます。

      Commit Deployments page
    • Merges、および課題は、このデプロイに関連するマージリクエストとプロジェクトの課題を示します。

      さらに、発行リクエストとマージリクエストには、デプロイタブに関連するデプロイに関する情報が含まれます。

      Deployments tab in Issue
  3. デプロイ設定を変更するには、設定をクリックします。

デプロイを削除する

  1. 必要なデプロイターゲットを見つけて開きます。

  2. 必要なデプロイを見つけて、バージョン番号をクリックします。これにより、デプロイの詳細ページが開きます。

  3. 削除をクリックします。

例とガイド

以下を使用してデプロイを構成する方法の例については、対応するトピックを参照してください。

Space Automation

Space Automation は、デプロイの追加サポートを提供します。ジョブでデプロイを作成するときに、syncWithAutomationJob = true パラメーターを指定できます。この場合、オートメーションはジョブとデプロイステータスを同期します。ジョブが正常に終了すると、対応するデプロイが現在のステータスを取得します。ジョブが失敗すると、デプロイも失敗します。

例: Gradle プロジェクトでデプロイを実行する Space Automation ジョブは次のようになります。

job("Deploy") { // run on commit to a branch containing "release" startOn { gitPush { anyBranchMatching { +"*release*" } } } container("Run deploy script", image = "gradle:6.1.1-jre11") { kotlinScript { api -> // create and start deployment api.space().projects.automation.deployments.start( project = api.projectIdentifier(), targetIdentifier = TargetIdentifier.Id("production-server"), version = System.getenv("JB_SPACE_EXECUTION_NUMBER"), // sync the job and deployment states syncWithAutomationJob = true ) // build and deploy try { api.gradle("build") api.gradle("deploy") } catch (ex: Exception) { println("Deployment failed") } } } }

JetBrains TeamCity

TeamCity ビルドから Space デプロイを使用するには

  1. Space 認証トークンを取得します

  2. Space デプロイの場合はカスタムビルドパラメーターを構成します。パラメーターを作成するときは、種類環境変数 (環境) を選択します。推奨されるパラメーター:

    • SPACE_URL : Space インスタンスの URL (例: https://mycompany.jetbrains.space

    • SPACE_TOKEN : Space 認証トークン。

    • SPACE_PROJECT_KEY : Space プロジェクトのプロジェクトキー値 (Space プロジェクトのメインページで入手可能)。

    • SPACE_PROJECT_NAME : Space プロジェクトの表示名。

    • SPACE_DEPLOYMENT_TARGET : デプロイターゲットのキー値 (デプロイターゲットの詳細ページで入手可能)。

    • SPACE_EXT_LABEL および SPACE_EXT_URL : (オプション) たとえば、これは対応する TeamCity ビルドへのリンクである可能性があります。

  3. ビルド構成で、ビルドステップを追加します。

    • 実際のデプロイステップの前に実行されるステップ。この手順では、space コマンドラインツールを使用して、デプロイ状態のデプロイを作成する必要があります。次のステップ構成を使用できます。

      • ランナータイプ : コマンドライン

      • 実行 : カスタムスクリプト

      • カスタムスクリプト : 最初に Space で認証してからデプロイを作成するシェルスクリプトを提供します。例:

        space configure %\env.SPACE_URL% %\env.SPACE_TOKEN% space deployments start %\env.SPACE_PROJECT_KEY% %\env.SPACE_DEPLOYMENT_TARGET% --version %\build.number% --commit %\env.SPACE_PROJECT_NAME%:%\teamcity.build.branch%:%\build.vcs.number% --ext-label '%\env.SPACE_EXT_LABEL%' --ext-url %\env.SPACE_EXT_URL%
      • Docker コンテナー内で実行ステップ : public.registry.jetbrains.space/p/space/containers/space-cli:latest を指定すると、プレインストールされた space ツールを使用して Docker イメージ内のステップが実行されます。

      • Docker イメージプラットフォーム : Linux

    • 実際のデプロイステップの後に実行されるステップ。この手順では、space コマンドラインツールを使用して、デプロイステータスを現在または失敗に変更する必要があります。ステップ構成は、実行する必要があるカスタムスクリプトを除き、上記のものと似ています。

      space configure %env.SPACE_URL% %env.SPACE_TOKEN% space deployments finish %env.SPACE_PROJECT_KEY% %env.SPACE_DEPLOYMENT_TARGET% --version %build.number%
      または
      space configure %env.SPACE_URL% %env.SPACE_TOKEN% space deployments fail %env.SPACE_PROJECT_KEY% %env.SPACE_DEPLOYMENT_TARGET%

    • 結果のビルド構成は次のようになります。

      steps { script { name = "Space notification - start deployment" scriptContent = """ space configure %env.SPACE_URL% %env.SPACE_TOKEN% space deployments start %env.SPACE_PROJECT_KEY% %env.SPACE_DEPLOYMENT_TARGET% --version %build.number% --commit %env.SPACE_PROJECT_NAME%:%teamcity.build.branch%:%build.vcs.number% --ext-label '%env.SPACE_EXT_LABEL%' --ext-url %env.SPACE_EXT_URL% """ dockerImage = "%env.SPACE_CLI_DOCKER_IMAGE%" } script { // do deploy... } script { name = "Space notification - finish deployment" executionMode = BuildStep.ExecutionMode.ON_SUCCESS scriptContent = """ space configure %env.SPACE_URL% %env.SPACE_TOKEN% space deployments finish %env.SPACE_PROJECT_KEY% %env.SPACE_DEPLOYMENT_TARGET% """ dockerImage = "%env.SPACE_CLI_DOCKER_IMAGE%" } script { name = "Space notification - fail deployment" executionMode = BuildStep.ExecutionMode.ON_FAILURE scriptContent = """ space configure %env.SPACE_URL% %env.SPACE_TOKEN% space deployments fail %env.SPACE_PROJECT_KEY% %env.SPACE_DEPLOYMENT_TARGET% """ dockerImage = "%env.SPACE_CLI_DOCKER_IMAGE%" } }

関連ページ:

プロジェクトに参加する

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

他の Space モジュールと対話する

ブロックは、チャット、課題、ドキュメントなどの他の Space モジュールを操作できる API を提供します。例: これは、ジョブからチャネルにメッセージを送信する方法です。job("Build and publish") { container(displayName = "Build and notify", image = "gradle:7.1-jre11") { kotlinScript { api -> try { api.gradle("build") } catch (ex:...

権限のリクエスト

特定の Space エンドポイントにアクセスするには、アプリケーションはまず対応するアクセス許可を取得する必要があります。例: アプリケーションがプロジェクトの課題を作成する場合、アプリケーションには課題の作成権限が必要です。課題の詳細を表示するには、課題を表示する権限が必要です。アプリケーションに必要な権限のセット全体は、権限スコープと呼ばれます。アプリケーションがアクセス許可を要求する方法は、アプリケーション自体の代わりに動作するアプリケーションと、Space ユーザーの代わりに動作するアプ...

Space SDK

Space SDK は、JetBrains Space HTTP API を操作できるようにし、Space アプリケーションの開発を簡素化するライブラリです。クイックスタート:1. プロジェクト内の Space SDK を参照する次の依存関係をプロジェクトの / ファイルに追加します。// the example is given for build.gradle.kts repositories { // here go other project repos ... maven("https:...

通知設定

Space では、自分に関連するすべての通知がチャットの通知フィードに投稿されます。通知フィードは、あなただけに表示される個人的な読み取り専用チャネルです。チャットおよび (オプションで) メールで通知を受け取りたいイベントの種類を選択する、携帯電話とデスクトップでプッシュ通知を受信する曜日と時間帯を選択する、通知を受け取りたいものを選択してください:Space には、購読している一連のイベントからすべての通知を受信するデフォルトの通知フィード #Space ボックスが付属しています。これらの事...

デプロイビルド構成

プロジェクトが構築されテストされたら、最終的なインフラストラクチャにデプロイする必要があることがよくあります。たとえば、NuGet ギャラリーにパッケージをアップロードしたり、DockerHub リポジトリにコンテナーを配信したり、ドキュメント Web サイトのソースを更新したりします。さまざまな CI/CD ソリューションでは、パイプラインのこの最後のステップに「デプロイ」ステージ、配信ターゲット、リリース、本番環境などのさまざまな用語を使用します。TeamCity では、配信タスクは、通常の...