@@ -18,6 +18,32 @@ function Export-Pipescript {
18
18
$InputPath
19
19
)
20
20
21
+ begin {
22
+ function AutoRequiresSimple {
23
+ param (
24
+ [Management.Automation.CommandInfo ]
25
+ $CommandInfo
26
+ )
27
+
28
+ process {
29
+ if (-not $CommandInfo.ScriptBlock ) { return }
30
+ $simpleRequirements =
31
+ foreach ($requiredModule in $CommandInfo.ScriptBlock.Ast.ScriptRequirements.RequiredModules ) {
32
+ if ($requiredModule.Name -and
33
+ (-not $requiredModule.MaximumVersion ) -and
34
+ (-not $requiredModule.RequiredVersion )
35
+ ) {
36
+ $requiredModule.Name
37
+ }
38
+ }
39
+
40
+ if ($simpleRequirements ) {
41
+ Invoke-PipeScript " require latest $ ( $simpleRequirements ) "
42
+ }
43
+ }
44
+ }
45
+ }
46
+
21
47
process {
22
48
if ($env: GITHUB_WORKSPACE ) {
23
49
" ::group::Discovering files" , " from: $InputPath " | Out-Host
@@ -53,8 +79,7 @@ function Export-Pipescript {
53
79
[long ]$TotalOutputFileLength = 0
54
80
foreach ($buildFile in $filesToBuild ) {
55
81
56
- $ThisBuildStartedAt = [DateTime ]::Now
57
-
82
+ $ThisBuildStartedAt = [DateTime ]::Now
58
83
Write-Progress " Building PipeScripts [$FilesToBuildCount / $filesToBuildTotal ]" " $ ( $buildFile.Source ) " - PercentComplete $ (
59
84
$FilesToBuildCount ++
60
85
$FilesToBuildCount * 100 / $filesToBuildTotal
@@ -67,6 +92,7 @@ function Export-Pipescript {
67
92
68
93
$buildFileTemplate = $buildFile.Template
69
94
if ($buildFileTemplate -and $buildFile.PipeScriptType -ne ' Template' ) {
95
+ AutoRequiresSimple - CommandInfo $buildFileTemplate
70
96
try {
71
97
Invoke-PipeScript $buildFileTemplate.Source
72
98
} catch {
@@ -85,7 +111,7 @@ function Export-Pipescript {
85
111
$EventsFromThisBuild = Get-Event |
86
112
Where-Object TimeGenerated -gt $ThisBuildStartedAt |
87
113
Where-Object SourceIdentifier -Like ' *PipeScript*'
88
-
114
+ AutoRequiresSimple - CommandInfo $buildFile
89
115
$FileBuildStarted = [datetime ]::now
90
116
$buildOutput =
91
117
try {
0 commit comments