TeamCity 構成の最後の部分を配置するのに深刻な問題があります。
次のコマンドを実行する powershell ステップがあります。
& npm install
& grunt build
次の出力を記録します。
Build (Powershell) (1s)
[13:18:08]PowerShell Executable: C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe
[13:18:08]Working directory: C:\BuildAgent\work\6a434ee5d01fd0d9
[13:18:08]PowerShell arguments: [-NonInteractive, -ExecutionPolicy, ByPass, -File, C:\BuildAgent\temp\buildTmp\powershell8407335260182621582.ps1]
[13:18:09]Error: ENOENT, stat 'C:\Windows\system32\config\systemprofile\AppData\Roaming\npm'
[13:18:09]
[13:18:09]grunt-cli: The grunt command line interface. (v0.1.13)
[13:18:09]Process exited with code 0
これは既知の問題であることがわかりましたが、これまでのところ、どの解決策もうまくいきませんでした。
私のセットアップは次のとおりです。Azure に 2 つの仮想マシンがbuild
あり、agent
. どちらも同じ AD ドメイン に接続されており、そこには「標準」クラス (つまり、管理者ではない)domain
のユーザー がいます。domain\teamcityuser
このユーザーは、ビルド サーバー (build
インスタンス上) とビルド エージェント (インスタンス上) の両方を実行しagent
ます。
私は成功せずにこれらのことを試しました:
- エラー メッセージに示されているディレクトリを作成し、そのディレクトリへの
domain\teamcityuser
フル コントロール アクセス権があることを確認します。 npm
配下にディレクトリを作成するC:\Users\teamcityuser\AppData\Roaming
C:\Windows\System32\config\SystemProfile\.npmrc
内容を含むファイルの作成prefix=C:\npm-global
、および後者のフォルダーの作成npm cache clean
ビルドを実行する前に実行するnpm
によるグローバルパッケージのインストールnpm install -g npm
これを機能させるために、これ以上何を試みることができますか?
そして、XYの問題を回避するために、ここに私の実際の問題があります:
私は、この TeamCity のインストール、Octopus Deploy 経由、およびホスティング サーバーへの CI セットアップを含む .NET Web API プロジェクトを持っています。API を使用する Web SPA のコードを含む github リポジトリもあります。スパは で構築されgrunt build
、その後、dist
展開する必要があるすべてのフォルダーがあります。
CI アーキテクチャを可能な限り再利用して、クライアントも展開したいと考えています。