Visual Studio Team Servicesで実装されていないBuild Taskを使えるようにする
Visual Studio Team Servicesファンの皆さまこんにちわ。今週のDevOpsハッカソン(12月9日, 10日)のためだけにこのエントリを書きます。本Tipsは、12/9 - 12/12までの間しか意味がありません。
ただし、この手順は、マイクロソフトが公開しているビルドタスクのうち、自分のプロジェクトから見えないタスクを組み込む手順としては有効かもしれません。それはこの記事とまったく同じ手順です。
Visual Studio Team Servicesで、現在(2015/12/8)Linux上でBuild Agentを実行するとCopyPublicBuildArtifactという、ビルドタスクが動きません。これは、ビルドタスク間で、ファイルを共有するためのタスクなので、致命的な欠陥です。私のほうでこの問題を発見して、GitHubのIssueとして報告しており、既にほかの方がPull Requestを送っており、マージされて、今週末後にリリース予定です。
その間、Visual Studio Team ServicesのLinux用Build Agentを使いたい人のための手順です。
Visual Studio Onlineのビルドタスクを作成するの手順と同様ですが、初めての方のために具体的に書いておきます。
1. VSO Tasksの取得
Visual Studio Team Servicesで定義されているビルドタスクは実はGitHubにあります。
このCopy and Publish Build Artifactsの部分にバグがあるので、これを改修してアップロードすれば終わりです。
まず、このリポジトリを取得しておきましょう。Gitがインストールされている前提です。
$ git clone https://github.com/Microsoft/vso-agent-tasks.git
$ cd vso-agent-tasks
2. tfx-cliのインストール
Visual Studio Team Services用のコマンドラインツールをインストールします。
Nodeとnpmがインストールされている必要があります。Windowsの人はchocolateyをインストールしたのち次のようにインストールしましょう。Macの人はhomebrew等でnodejsをbrew install node
でインストール可能です。
$ choco install nodejs.install
3. tfs-cliのインストール
TFS Cross Platform Command Lineツールをインストールすると、Taskを自作できるようになります。
$ npm install -g tfx-cli
4. Personal Access Tokenの取得
コマンドラインツールが、Visual Studio Team Servicesにアクセスできるように、Personal Access Tokenを取得します。Visual Studio Team Servicesの右上の自分のアカウントをクリック > My Profile > Security > Personal access tokens を選択し、Addのリンクを押して、Access Tokenを取得します。
5. task.jsonの修正
今回のバグは、task.jsonというファイルでのCopyPublishBuildArtifacts.jsというファイル指定が小文字になっており、Unix系のOSでは、大文字と小文字を区別するため、このファイルが見つからずエラーになるというものです。
現在のGitHubリポジトリはこの問題が修正済みのようですので、このタスクをアップロードしなおせば、問題は修正されます。
vso-agent-tasks/Tasks/CopyPublishBuildArtifacts/task.json
実際には先ほどクローンした、リポジトリから移動します。そしてまずはVSTSにログイン
$ tfx login
Enter collection > https://<ここにVSOのアカウント名を書く>.visualstudio.com/DefaultCollection
Enter personal access token > xxxxxxxx
このGitHubにあるタスクを自分のVSTSに反映させるのは簡単で、そのタスクのディレクトリに行ってからtfx build tasks upload
コマンドを
実行して終了です。今回--overwrite
オプションをつけているのは、既にそのビルドタスクは、VSTSに登録済みなので、それを上書きしてもらうために
つけています。
$ cd Tasks\CopyPublishBuildArtifacts
$ tfx build tasks upload --overwrite
TFS Cross Platform Command Line Interface v0.3.6
Copyright Microsoft Corporation
> Task path: .
.
Task at C:\Users\tsushi\Codes\vststasks\vso-agent-tasks\Tasks\CopyPublishBuildArtifacts uploaded successfully!
という感じですね。これで、CopyPublishBuildArtifactsのバグが修正されます。ほかにもいろいろな面白さそうなビルドタスクがあるので、自分で試してみるのもいいかもしれませんね。
ただし、正式リリースされていないものなので、問題はあるかもしれませんし、Windows系でのみしか動かないものもありますのでご注意ください。
その見分け方は、.js(Javascript)と.ps(PowerShell)が両方あるか否かで判断すればいいです。たまに.psファイルしかないものがあって、そのタスクはWindowsでしか動かないと思ったほうがいいです。(エラーメッセージも出ないので最初はびっくりするかもです)
では、ハックをお楽しみください!
Author And Source
この問題について(Visual Studio Team Servicesで実装されていないBuild Taskを使えるようにする), 我々は、より多くの情報をここで見つけました https://qiita.com/TsuyoshiUshio@github/items/c8b7d6ed05afddc30957著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .