iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android开发vsts agent支持自定义task过程详解
  • 384
分享到

Android开发vsts agent支持自定义task过程详解

2024-04-02 19:04:59 384人浏览 薄情痞子
摘要

vsts 中支持自定义Build/Release的过程Task 目标:做一个可以读取 Xamarin.Android 所生成的 APK 的 基本信息的 task ,包括 packag

vsts 中支持自定义Build/Release的过程Task

目标:做一个可以读取 Xamarin.Android 所生成的 APK 的 基本信息的 task ,包括 package(包名) / application label(应用标题 )/version name(版本号)/version code(版本代码)

下面简述流程

1.下载并安装 Visual Studio Code(Http://code.visualstudio.com ),当然使用 Visual Studio 或者其它任何开发工具也可以

2.下载并安装最新版本 nodejshttps://nodejs.org),如果是直接安装的 vs 这些应该直接都有了

3.建立自己的项目文件夹,如 d:\code\home

4.通过 npm 安装编译工具 tfx-cli 

npm i -g tfx-cli

5.在自己的项目文件夹中建立一个 vss-extension.JSON 文件,这个文件中说明了当前扩展包的信息,以及扩展包中包含哪些任务

{
    "manifestVersion": 1,
    "id": "zou-tasks",
    "name": "Zou Tasks",
    "version": "1.0.4",
    "publisher": "zoujian",
    "targets": [
        {
            "id": "Microsoft.VisualStudio.Services"
        }
    ],
    "description": "Tools for building & publish",
    "cateGories": [
        "Build and release"
    ],
    "icons": {
        "default": "extension-icon.png"
    },
    "files": [
        {
            "path": "extract-xamarin-android-manifest"
        }
    ],
    "contributions": [
        {
            "id": "extract-xamarin-android-manifest",
            "type": "ms.vss-distributed-task.task",
            "targets": [
                "ms.vss-distributed-task.tasks"
            ],
            "properties": {
                "name": "extract-xamarin-android-manifest"
            }
        }
    ]
}

6.以上面扩展信息中所示,扩展包中包含了一个叫 extract-xamarin-android-manifest(我的任务) 的插件,文件夹结构是这样的

extension-icon.png (vsix的图标)
vss-extension.json

extract-xamarin-android-manifest
  - extract.ps1 (任务的对应脚本,是在task.json中配置的此名称)
  - icon.png (任务的图标)
  - task.json (任务的配置文件)

其中 task.json 是最主要的文件,我当前的这个扩展是读取 Xamarin.Android 的项目,并且读取出生成 apk 的基础信息,包含 application 的 label,packagename,version name,version code

{
  "id": "f1821fab-78d1-4c22-a0e4-f98f40fd7079",//任务的唯一id
  "name": "extract-xamarin-android-manifest",//任务名称
  "friendlyName": "extract xamarin android info",//友好任务名
  "description": "extract xamarin android info",
  "author": "zoujian",
  "helpmarkdown": "[More InfORMation](https://GitHub.com/chsWord/zou-vsts-tasks)",//帮助(就是显示时后面的吧号)
  "category": "Utility",//类别,工具
  "visibility": [
    "Build",
    "Release"
  ],
  "demands": [
    "dotnetFramework"
  ],
  "version": {//版本
    "Major": "1",
    "Minor": "0",
    "Patch": "4"
  },
  "minimumAgentVersion": "1.83.0",//支持vso agent的版本
  "instanceNameFormat": "ExtractXamarinAndroidManifest",//实例名
  "groups": [//如果输入参数要分组的话,建一个
    {
      "name": "output",
      "displayName": "Output",
      "isExpanded": true
    }
  ],
  "inputs": [//各种输入参数
    {
      "name": "pathXamarinAndroidProject",
      "type": "filePath",
      "label": "Xamarin Android project Path",
      "defaultValue": "",
      "required": true,
      "helpMarkDown": "Path which Xamarin Android project exisis."
    },
    {
      "name": "configuration",
      "type": "string",
      "label": "Configuration",
      "defaultValue": "$(BuildConfiguration)",
      "required": true
    },
    {
      "name": "outputVariable",
      "type": "string",
      "label": "outputVariable",
      "required": true,
      "defaultValue": "android",
      "groupName": "output",
      "helpMarkDown": "Provide a name for the variable for the android info. eg. set the outputVariable 'android', after task running, will return 'android.PackageName','android.ApplicationLabel','android.VersionName','android.VersionCode'."
    }
  ],
  "execution": {//实际执行的过程,我这里是执行了一个powershell脚本,有兴趣的同学可以看下,就是读取了apk的AndroidManifest的xml结构
    "PowerShell": {
      "target": "$(currentDirectory)\\extract.ps1",
      "argumentFormat": "",
      "workingDirectory": "$(currentDirectory)"
    }
  }
}

7.要编译为VSIX的话,执行 tfx extension create --manifest-globs vss-extension.json

8.tfs或vso中导入vsix,过程不说述

9.可以直接在tfs中使用了

实际使用时,如此配置参数:

源代码:https://github.com/chsword/zou-vsts-tasks

引用 :

官方task:https://github.com/Microsoft/vsts-tasks

官方文档:https://www.visualstudio.com/zh-cn/docs/build/define/variables

以上就是开发一个 vsts agent 的 task的详细内容,更多关于vsts agent的task的资料请关注编程网其它相关文章!

--结束END--

本文标题: Android开发vsts agent支持自定义task过程详解

本文链接: https://www.lsjlt.com/news/144840.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作