- 概要
- UiPath CLI
- Azure DevOps 拡張機能
- Jenkins プラグイン
CI/CD 連携ユーザー ガイド
このページでは、パッケージの依存関係を解決するときにどの NuGet フィード uipcli 参照するかを制御する 3 つの CLI パラメーターについて説明し、それぞれの使用方法を示します。
スタンドアロンの RPA プロジェクト と ソリューションの両方に同じパラメーターが適用されます。
uipcli によるフィードの解決方法
既定では、 uipcli は 3 つのソースからパッケージを次の順序で解決します。
- CLI に付属する組み込みフィード:
https://pkgs.dev.azure.com/uipath/Public.Feeds/_packaging/UiPath-Official/nuget/v3/index.jsonhttps://gallery.uipath.com/api/v2https://api.nuget.org/v3/index.jsonC:\Program Files\Microsoft SDKs\NuGetPackages(このパスが現在のエージェント上にある場合)C:\Program Files (x86)\Microsoft SDKs\NuGetPackages(このパスが現在のエージェント上にある場合)
- CLI を実行するマシンでのホスト レベルの NuGet の構成。通常は
%AppData%\NuGet\NuGet.Config(ユーザー レベル) と%ProgramFiles(x86)%\NuGet\Config(マシン レベル) - 通過するカスタム
nuget.config--nugetConfigFilePath。
次の 3 つのパラメーターを使用して、この既定の解像度をカスタマイズできます。
| パラメーター | 制御するもの |
|---|---|
--nugetConfigFilePath | 指定した nuget.config ファイルからフィードを追加します。 |
--disableBuiltInNugetFeeds | レイヤー 1 (組み込みフィード) をドロップします。 |
--excludeConfiguredSources | レイヤー 1 と レイヤー 2 をドロップします。 --nugetConfigFilePath フィードのみが残ります。 |
構成ファイルを使用して uipcli を実行する場合、各パラメーターには同等の JSON スタイル ( "nugetConfigFilePath": "..."、 "disableBuiltInNugetFeeds": true、 "excludeConfiguredSources": true) があります。
カスタム フィードの追加 --nugetConfigFilePath
--nugetConfigFilePath、依存関係の解決に<packageSources>を含める nuget.config ファイルを指定します。これは、ビルド エージェントを何も変更せずにプライベート フィード (企業の ProGet、Artifactory、Azure Artifacts、内部 Nexus など) を追加する主な方法です。
このファイルは、標準の NuGet スキーマに従います。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="MyCustomFeed" value="https://my.corp.example/nuget/v3/index.json" />
</packageSources>
</configuration>
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="MyCustomFeed" value="https://my.corp.example/nuget/v3/index.json" />
</packageSources>
</configuration>
コマンドラインでパスを渡します。
uipcli package pack "C:\projects\MyProject\project.json" -o "C:\Output" \
--nugetConfigFilePath "C:\ci\nuget.config"
uipcli package pack "C:\projects\MyProject\project.json" -o "C:\Output" \
--nugetConfigFilePath "C:\ci\nuget.config"
25.10.18 以降は、ファイルはエンドツーエンドで受け入れられます — CLI はそれを WorkflowCompiler に転送し、WorkflowCompiler は NuGet ライブラリを介して直接読み込みます。次のディレクティブはすべて有効です。
| ディレクティブ | 効果 |
|---|---|
<clear /> 中に <packageSources> | ファイルの残りの部分が適用される前に、継承されたソースのリスト (組み込みフィードとホスト レベルの設定) を削除します。 |
<packageSourceCredentials> | ソースごとの資格情報。プライベート フィード (JFrog、Sonatype Nexus、内部 Azure Artifacts など) に対する基本認証は、401 チャレンジを含む NuGet のネイティブ HTTP パイプラインによって処理されます。 |
<packageSourceMapping> | どのパッケージ ID (または ID プレフィックス) をどのソースから解決できるかを制限します。 |
<fallbackPackageFolders> | NuGet がネットワークに移動する前に参照するローカル フォルダーを追加します。エアギャップビルドに便利です。 |
認証されたプライベートフィード(JFrog、Nexus、内部Azure Artifacts)
ソースとその資格情報を同じファイル内で宣言します。CLI には追加のパラメーターは必要ありません — NuGet クライアントは、一致するソースにヒットすると資格情報を自動的に取得します。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="UiPath-Internal" value="https://artifactory.contoso.example/api/nuget/v3/uipath-feed/index.json" protocolVersion="3" />
</packageSources>
<packageSourceCredentials>
<UiPath-Internal>
<add key="Username" value="ci-bot" />
<add key="ClearTextPassword" value="%ARTIFACTORY_TOKEN%" />
</UiPath-Internal>
</packageSourceCredentials>
</configuration>
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="UiPath-Internal" value="https://artifactory.contoso.example/api/nuget/v3/uipath-feed/index.json" protocolVersion="3" />
</packageSources>
<packageSourceCredentials>
<UiPath-Internal>
<add key="Username" value="ci-bot" />
<add key="ClearTextPassword" value="%ARTIFACTORY_TOKEN%" />
</UiPath-Internal>
</packageSourceCredentials>
</configuration>
パスワードは、ファイルに直接挿入するのではなく、CI シークレットを介して挿入します。NuGet は、ファイルの読み込み時にフォーム %VAR% の環境変数を展開します。
どのソースでどのパッケージを解決するかを制限する
UiPath アクティビティ パッケージを内部ミラーから取得し、他の依存関係を別のフィードにフォールスルーできるようにする場合は、 <packageSourceMapping> を使用します。
<configuration>
<packageSources>
<add key="UiPath-Internal" value="https://artifactory.contoso.example/api/nuget/v3/uipath-feed/index.json" />
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
</packageSources>
<packageSourceMapping>
<packageSource key="UiPath-Internal">
<package pattern="UiPath.*" />
</packageSource>
<packageSource key="nuget.org">
<package pattern="*" />
</packageSource>
</packageSourceMapping>
</configuration>
<configuration>
<packageSources>
<add key="UiPath-Internal" value="https://artifactory.contoso.example/api/nuget/v3/uipath-feed/index.json" />
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
</packageSources>
<packageSourceMapping>
<packageSource key="UiPath-Internal">
<package pattern="UiPath.*" />
</packageSource>
<packageSource key="nuget.org">
<package pattern="*" />
</packageSource>
</packageSourceMapping>
</configuration>
25.10.18 より前の CLI バージョンでは、<packageSources> URL のみがパッケージャーに転送され、<clear />、<packageSourceCredentials>、<packageSourceMapping>、<fallbackPackageFolders> は警告なしに無視されました。古い CLI ビルドで依存関係の解決をnuget.configにピン留めするには、--nugetConfigFilePath と --excludeConfiguredSources を組み合わせ、代わりにホストの NuGet 構成を使用して資格情報を指定します。
別の方法: nuget.config を CLI キャッシュ フォルダーに配置します
すべての呼び出しでパラメーターを渡さない場合は、uipcliがキャッシュされているフォルダーにnuget.configをドロップできます。CLI は自動的に検出します。
Azure DevOps でカスタム nuget.configを使用する
InstallPlatform手順の後にnuget.config$(Agent.ToolsDirectory)/uipcliにコピーします。
trigger:
- main
pool:
vmImage: ubuntu-latest
stages:
- stage: Demo
jobs:
- job: Demo
steps:
- task: UiPathInstallPlatform@6
inputs:
cliVersion: '25.10'
- task: CopyFiles@2
inputs:
SourceFolder: '$(Build.SourcesDirectory)'
Contents: 'nuget.config'
TargetFolder: '$(Agent.ToolsDirectory)/uipcli'
- task: UiPathPack@6
inputs:
versionType: 'AutoVersion'
projectJsonPath: '$(Build.SourcesDirectory)/project.json'
outputPath: '$(Build.ArtifactStagingDirectory)/Output'
traceLevel: 'Information'
trigger:
- main
pool:
vmImage: ubuntu-latest
stages:
- stage: Demo
jobs:
- job: Demo
steps:
- task: UiPathInstallPlatform@6
inputs:
cliVersion: '25.10'
- task: CopyFiles@2
inputs:
SourceFolder: '$(Build.SourcesDirectory)'
Contents: 'nuget.config'
TargetFolder: '$(Agent.ToolsDirectory)/uipcli'
- task: UiPathPack@6
inputs:
versionType: 'AutoVersion'
projectJsonPath: '$(Build.SourcesDirectory)/project.json'
outputPath: '$(Build.ArtifactStagingDirectory)/Output'
traceLevel: 'Information'
Jenkins でカスタム nuget.configを使用する
InstallPlatform手順の後にnuget.config${WORKSPACE}/CLIにコピーします。
pipeline {
agent {
label 'jenkins-agent'
}
stages {
stage('Clone') {
steps {
git (
branch: 'main',
url: 'https://github.com/your-org/your-repo.git'
)
}
}
stage('Install Platform') {
steps {
UiPathInstallPlatform (
cliVersion: '25.10',
traceLevel: 'Information'
)
}
}
stage('Copy nuget.config') {
steps {
bat 'copy nuget.config CLI\\nuget.config'
}
}
stage('Pack') {
steps {
UiPathPack (
outputPath: '${WORKSPACE}/Output',
projectJsonPath: '${WORKSPACE}/project.json',
traceLevel: 'Information',
version: AutoVersion()
)
}
}
}
}
pipeline {
agent {
label 'jenkins-agent'
}
stages {
stage('Clone') {
steps {
git (
branch: 'main',
url: 'https://github.com/your-org/your-repo.git'
)
}
}
stage('Install Platform') {
steps {
UiPathInstallPlatform (
cliVersion: '25.10',
traceLevel: 'Information'
)
}
}
stage('Copy nuget.config') {
steps {
bat 'copy nuget.config CLI\\nuget.config'
}
}
stage('Pack') {
steps {
UiPathPack (
outputPath: '${WORKSPACE}/Output',
projectJsonPath: '${WORKSPACE}/project.json',
traceLevel: 'Information',
version: AutoVersion()
)
}
}
}
}
組み込みフィードを無効化する --disableBuiltInNugetFeeds
--disableBuiltInNugetFeeds 、UiPath の組み込みフィードが解像度から削除されます。ホスト レベルの NuGet の構成と、 --nugetConfigFilePath からのフィードは引き続き参照されます。
これは、次の場合に使用します。
- ネットワークは
pkgs.dev.azure.com、gallery.uipath.com、またはapi.nuget.orgをブロックし、代わりにパッケージを内部的にミラーリングします。 - アクティビティ パッケージ バージョンが確定的に構成されていて、
gallery.uipath.comフィードからではなく、独自のフィードから取得する必要がある。
uipcli package pack "C:\projects\MyProject\project.json" -o "C:\Output" \
--nugetConfigFilePath "C:\ci\nuget.config" \
--disableBuiltInNugetFeeds
uipcli package pack "C:\projects\MyProject\project.json" -o "C:\Output" \
--nugetConfigFilePath "C:\ci\nuget.config" \
--disableBuiltInNugetFeeds
カスタム フィードのみに制限する --excludeConfiguredSources
--excludeConfiguredSources には、組み込みフィードと、CLI を実行するホスト上のユーザー レベルおよびマシン レベルで設定された NuGet ソースの両方が除外されます (通常は %AppData%\NuGet\NuGet.Config および %ProgramFiles(x86)%\NuGet\Config)。CLI は、 --nugetConfigFilePathで定義されたフィードからのみパッケージを解決します。
これは、次の場合に使用します。
- バージョン管理で宣言したフィードのみが参照される、密閉された再現可能なビルドが必要です。
- 共有ビルドエージェントには、特定のパイプラインに出血させたくないマシンレベルのフィードがあります。
- ホスト レベルの NuGet 構成の相違が原因で発生する、"エージェント A で動作し、エージェント B で失敗する" 問題をデバッグしています。
uipcli package pack "C:\projects\MyProject\project.json" -o "C:\Output" \
--nugetConfigFilePath "C:\ci\nuget.config" \
--excludeConfiguredSources
uipcli package pack "C:\projects\MyProject\project.json" -o "C:\Output" \
--nugetConfigFilePath "C:\ci\nuget.config" \
--excludeConfiguredSources
他のソースは参照されないため、--nugetConfigFilePath と共に渡すnuget.configに、プロジェクトが必要とするすべてのフィード (UiPath フィードに相当するものも含む) が宣言されていることを確認してください。
- uipcli によるフィードの解決方法
- カスタム フィードの追加
--nugetConfigFilePath - 認証されたプライベートフィード(JFrog、Nexus、内部Azure Artifacts)
- どのソースでどのパッケージを解決するかを制限する
- 別の方法:
nuget.configを CLI キャッシュ フォルダーに配置します - Azure DevOps でカスタム
nuget.configを使用する - Jenkins でカスタム
nuget.configを使用する - 組み込みフィードを無効化する
--disableBuiltInNugetFeeds - カスタム フィードのみに制限する
--excludeConfiguredSources