【问题标题】:Getting release and build numbers from Azure DevOps Release Pipeline to display in website从 Azure DevOps Release Pipeline 获取发布和内部版本号以显示在网站上
【发布时间】:2019-09-01 12:54:30
【问题描述】:

我希望能够在 Asp.Net MVC Core 网站中显示版本号(图片中的 *1)和内部版本号(图片中的 *2) - 对于该特定网站,该网站是使用 Azure 构建和发布的开发运维。

因此,如果我为 MVC 网站签入代码,构建和发布过程就会启动并部署该网站 - 现在我希望同一个网站在页脚中显示“Release xxxxx”。

它可以在 JSON 文件、环境变量或其他东西中 - 只要我可以从 Asp.Net Core 访问它,我就很高兴。

如何实现?

【问题讨论】:

    标签: azure-devops azure-web-app-service azure-pipelines


    【解决方案1】:

    如果您希望在您构建和部署的当前应用程序中显示数据,您可以获取变量的值,例如每个环境变量:

    var releaseName = Environment.GetEnvironmentVariable("Release_ReleaseName", EnvironmentVariableTarget.Process);
    var buildNumber= Environment.GetEnvironmentVariable("Build_BuildNumber", EnvironmentVariableTarget.Process);
    

    如果您想在外部应用中显示数据:

    您可以通过Azure DevOps Rest API 获取所有发布数据。发布的API是Releases - Get Release:

    GET https://vsrm.dev.azure.com/{organization}/{project}/_apis/release/releases/{releaseId}?api-version=5.1
    

    您有一个包含发布信息的大 JSON,包括发布名称:

    {
        "id":  205,
        "name":  "Release-93",
    

    并且在artifact数组中,可以获取build id(definitionReference.version.name下):

    "version":  {
                  "id":  "1439",
                  "name":  "TestVars_20190829.1439..11"
    

    因此,在您的 Asp.Net MVC Core 应用程序中,只需调用 GET rest API 即可获得所有数据。

    另外,您可以使用.NET client libraries for Azure DevOps ServicesGetRelease() 方法获取数据:

    string projectName = "TestProject";
    VssConnection connection = Context.Connection;
    ReleaseHttpClient releaseClient = connection.GetClient<ReleaseHttpClient>();
    
    List<WebApiRelease> releases = releaseClient.GetReleasesAsync(project: projectName).Result;
    
    int releaseId = releases.FirstOrDefault().Id;
    
    // Show a release
    WebApiRelease release = releaseClient.GetReleaseAsync(project: projectName, releaseId: releaseId).Result;
    // Now get the release name and build nubmer
    

    【讨论】:

    • 我想我的问题可能有点不清楚。当管道构建和发布网站时,我希望同一个网站显示当前部署的构建和发布版本。我编辑了我的问题,以便现在更清楚。
    • 您添加的代码获得了一个环境变量,这很好,但是这些变量没有被设置(当我尝试在站点中访问它们时它们是空的 - 我检查了使用 Kudu 的 Azure 站点)。我猜我必须在变量的发布过程中添加一些东西?
    • 换句话说:如何让发布管道在我部署到的 azure Web 应用程序中设置环境变量?
    • azure web app中如何设置正常的环境变量?
    • 通过Azure Portal,在网站下=>配置
    【解决方案2】:

    解决方案似乎是在构建 Replace Tokens 期间使用 Azure Devops 插件,它在构建/发布期间替换 .config 文件中的字符串 - 然后在运行时从代码中访问这些值。

    这里有更详细的描述:.NET Core App - How to get build number at runtime

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 2020-06-11
      • 1970-01-01
      • 1970-01-01
      • 2020-02-22
      • 1970-01-01
      相关资源
      最近更新 更多