使用Azure DevOps节点API触发部署

发布于 2025-02-03 04:24:15 字数 479 浏览 5 评论 0原文

如何使用Azure DevOps节点API触发部署?我手动执行以下操作:

  1. 转到发布页面
  2. 单击最新版本,
  3. 选择要部署到(在发行阶段中列出的env)的ENV
  4. 单击Deploy,

我可以通过以下方式进行编程发布以下内容:

const releaseApi: ra.IReleaseApi = await connection.getReleaseApi();

const releases: Release[] = await releaseApi.getReleases("b32aa71e-8ed2-41b2-9d77-5bc261222004", 34609, undefined);

下一步我该做什么?我尝试使用RelevareFinitionareaseapi.updaterelease() api播放。

How can I trigger a deployment using the azure devops node API? I do it manually as follows:

  1. Go to the release page
  2. Click on the latest release
  3. Choose the env I want to deploy to (listed in the release stages)
  4. Click deploy

I am able to get the release programmatically as follows:

const releaseApi: ra.IReleaseApi = await connection.getReleaseApi();

const releases: Release[] = await releaseApi.getReleases("b32aa71e-8ed2-41b2-9d77-5bc261222004", 34609, undefined);

What do I do next? I tried playing around with the releaseDefinition and the releaseApi.updateRelease() API unsuccessfully.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

三生殊途 2025-02-10 04:24:15

您将必须使用发行版本的对象和督ID或项目名称来调用请求发布
这将等同于其余的呼叫 - https://learn.microsoft.com/en-us/rest/rest/api/api/azure/devops/release/Release/Releases/Create?view=Azure-devops-rest-rest-6.0

let requestedRelease: ReleaseStartMetadata = { 
    definitionId: this.releaseConfiguration.pipelineId, // Sets definition Id to create a release.
    description: this.releaseConfiguration.description, // Sets description to create a release.
    isDraft: false, // Sets 'true' to create release in draft mode, 'false' otherwise.
    manualEnvironments: new Array<string>(), // Sets list of environments to manual as condition.
    properties: {},
    reason:  ReleaseReason.ContinuousIntegration, // Sets reason to create a release.
    //artifacts: releaseArtifacts // Sets list of artifact to create a release.
    // environmentsMetadata?: ReleaseStartEnvironmentMetadata[]; // Sets list of environments meta data.
    // variables?: { [key: string]: ConfigurationVariableValue; }; // Sets list of release variables to be overridden at deployment time.
};

console.log("Requesting release");
let curRelease = await releaseApi.createRelease(requestedRelease, this.releaseConfiguration.projectId);
if (release != null) {
    log.LogPipelineTriggered(pipelineName, projectName);
    log.LogPipelineTriggerOutput(release);
    if (release != null && release._links != null) {
        log.LogOutputUrl(release._links.web.href);
    }
}

You will have to call request release with releaseStartMetadata object and Poject ID or project name
This would be equivalent to the rest call - https://learn.microsoft.com/en-us/rest/api/azure/devops/release/releases/create?view=azure-devops-rest-6.0

let requestedRelease: ReleaseStartMetadata = { 
    definitionId: this.releaseConfiguration.pipelineId, // Sets definition Id to create a release.
    description: this.releaseConfiguration.description, // Sets description to create a release.
    isDraft: false, // Sets 'true' to create release in draft mode, 'false' otherwise.
    manualEnvironments: new Array<string>(), // Sets list of environments to manual as condition.
    properties: {},
    reason:  ReleaseReason.ContinuousIntegration, // Sets reason to create a release.
    //artifacts: releaseArtifacts // Sets list of artifact to create a release.
    // environmentsMetadata?: ReleaseStartEnvironmentMetadata[]; // Sets list of environments meta data.
    // variables?: { [key: string]: ConfigurationVariableValue; }; // Sets list of release variables to be overridden at deployment time.
};

console.log("Requesting release");
let curRelease = await releaseApi.createRelease(requestedRelease, this.releaseConfiguration.projectId);
if (release != null) {
    log.LogPipelineTriggered(pipelineName, projectName);
    log.LogPipelineTriggerOutput(release);
    if (release != null && release._links != null) {
        log.LogOutputUrl(release._links.web.href);
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文