YAML ビルドでは、共有 YAML テンプレートを広く使用しています。このようなもの:
trigger: none
resources:
repositories:
- repository: templates
type: git
name: DFDevOps\cicd-templates
ref: refs/tags/stable-1
# http://tdc1tfsapp01:8080/tfs/DefaultCollection/DFDevOps/_git/cicd-templates
name: $(BuildVersionPrefix).$(DayOfYear)$(Date:HH)
jobs:
- job: Build
pool:
demands: DotNetFramework
workspace:
clean: outputs
timeoutInMinutes: 180
steps:
- checkout: self # self represents the repo where the initial Pipelines YAML file was found
clean: true
lfs: true
- template: ci/ci-build.yml@templates
parameters:
releaseBranch: $(ReleaseBranch)
ただし、共有 YAML テンプレートは多くの場合、Powershell コードを実行する必要があります。これまでのところ、それを埋め込むか、テンプレートがロードする PS モジュールに配置します。
私は両方のアプローチが嫌いです。私は埋め込みが嫌いです:
- インテリセンなし
- 単体テストなし
- パイプラインの失敗に関する適切なエラー報告がない
モジュールはオリジンから切り離されており、多くのオーバーヘッドが必要になるため、モジュールを入れるのは嫌いです。
私の質問 - YAML テンプレートと同じリポジトリにある専用の ps1 ファイルに PS コードを配置し、実行時にそれらを利用できるようにすることは可能ですか?