@@ -139,51 +139,70 @@ Function Test-Environment {
139139 [Alias (' RequiredMessage' , ' RequireMessage' )][String ]$MandatoryMessage = ' This process requires to invoke inside the GitHub Actions environment!' ,
140140 [Switch ]$StepSummary # Deprecated, keep as legacy.
141141 )
142- If (
143- ($Env: CI -ine ' true' ) -or
144- [String ]::IsNullOrWhiteSpace($Env: GITHUB_ACTION ) -or
145- ($Env: GITHUB_ACTIONS -ine ' true' ) -or
146- [String ]::IsNullOrWhiteSpace($Env: GITHUB_ACTOR ) -or
147- [String ]::IsNullOrWhiteSpace($Env: GITHUB_ACTOR_ID ) -or
148- [String ]::IsNullOrWhiteSpace($Env: GITHUB_API_URL ) -or
149- [String ]::IsNullOrWhiteSpace($Env: GITHUB_ENV ) -or
150- [String ]::IsNullOrWhiteSpace($Env: GITHUB_EVENT_NAME ) -or
151- [String ]::IsNullOrWhiteSpace($Env: GITHUB_EVENT_PATH ) -or
152- [String ]::IsNullOrWhiteSpace($Env: GITHUB_GRAPHQL_URL ) -or
153- [String ]::IsNullOrWhiteSpace($Env: GITHUB_JOB ) -or
154- [String ]::IsNullOrWhiteSpace($Env: GITHUB_PATH ) -or
155- [String ]::IsNullOrWhiteSpace($Env: GITHUB_REF_NAME ) -or
156- [String ]::IsNullOrWhiteSpace($Env: GITHUB_REF_PROTECTED ) -or
157- [String ]::IsNullOrWhiteSpace($Env: GITHUB_REF_TYPE ) -or
158- [String ]::IsNullOrWhiteSpace($Env: GITHUB_REPOSITORY ) -or
159- [String ]::IsNullOrWhiteSpace($Env: GITHUB_REPOSITORY_ID ) -or
160- [String ]::IsNullOrWhiteSpace($Env: GITHUB_REPOSITORY_OWNER ) -or
161- [String ]::IsNullOrWhiteSpace($Env: GITHUB_REPOSITORY_OWNER_ID ) -or
162- [String ]::IsNullOrWhiteSpace($Env: GITHUB_RETENTION_DAYS ) -or
163- [String ]::IsNullOrWhiteSpace($Env: GITHUB_RUN_ATTEMPT ) -or
164- [String ]::IsNullOrWhiteSpace($Env: GITHUB_RUN_ID ) -or
165- [String ]::IsNullOrWhiteSpace($Env: GITHUB_RUN_NUMBER ) -or
166- [String ]::IsNullOrWhiteSpace($Env: GITHUB_SERVER_URL ) -or
167- [String ]::IsNullOrWhiteSpace($Env: GITHUB_SHA ) -or
168- [String ]::IsNullOrWhiteSpace($Env: GITHUB_STEP_SUMMARY ) -or
169- [String ]::IsNullOrWhiteSpace($Env: GITHUB_WORKFLOW ) -or
170- [String ]::IsNullOrWhiteSpace($Env: GITHUB_WORKFLOW_REF ) -or
171- [String ]::IsNullOrWhiteSpace($Env: GITHUB_WORKFLOW_SHA ) -or
172- [String ]::IsNullOrWhiteSpace($Env: GITHUB_WORKSPACE ) -or
173- [String ]::IsNullOrWhiteSpace($Env: RUNNER_ARCH ) -or
174- [String ]::IsNullOrWhiteSpace($Env: RUNNER_NAME ) -or
175- [String ]::IsNullOrWhiteSpace($Env: RUNNER_OS ) -or
176- [String ]::IsNullOrWhiteSpace($Env: RUNNER_TEMP ) -or
177- [String ]::IsNullOrWhiteSpace($Env: RUNNER_TOOL_CACHE ) -or
178- ((
179- $Artifact.IsPresent -or
180- $Cache.IsPresent
181- ) -and [String ]::IsNullOrWhiteSpace($Env: ACTIONS_RUNTIME_TOKEN )) -or
182- ($Artifact.IsPresent -and [String ]::IsNullOrWhiteSpace($Env: ACTIONS_RUNTIME_URL )) -or
183- ($Cache.IsPresent -and [String ]::IsNullOrWhiteSpace($Env: ACTIONS_CACHE_URL )) -or
184- ($OpenIdConnect.IsPresent -and [String ]::IsNullOrWhiteSpace($Env: ACTIONS_ID_TOKEN_REQUEST_TOKEN )) -or
185- ($OpenIdConnect.IsPresent -and [String ]::IsNullOrWhiteSpace($Env: ACTIONS_ID_TOKEN_REQUEST_URL ))
186- ) {
142+ [Hashtable []]$Conditions = @ (
143+ @ { NeedTest = $True ; Name = ' CI' ; ExpectedValue = ' true' },
144+ @ { NeedTest = $True ; Name = ' GITHUB_ACTION' ; },
145+ @ { NeedTest = $True ; Name = ' GITHUB_ACTIONS' ; ExpectedValue = ' true' },
146+ @ { NeedTest = $True ; Name = ' GITHUB_ACTOR' ; },
147+ @ { NeedTest = $True ; Name = ' GITHUB_ACTOR_ID' ; },
148+ @ { NeedTest = $True ; Name = ' GITHUB_API_URL' ; },
149+ @ { NeedTest = $True ; Name = ' GITHUB_ENV' ; },
150+ @ { NeedTest = $True ; Name = ' GITHUB_EVENT_NAME' ; },
151+ @ { NeedTest = $True ; Name = ' GITHUB_EVENT_PATH' ; },
152+ @ { NeedTest = $True ; Name = ' GITHUB_GRAPHQL_URL' ; },
153+ @ { NeedTest = $True ; Name = ' GITHUB_JOB' ; },
154+ @ { NeedTest = $True ; Name = ' GITHUB_PATH' ; },
155+ @ { NeedTest = $True ; Name = ' GITHUB_REF_NAME' ; },
156+ @ { NeedTest = $True ; Name = ' GITHUB_REF_PROTECTED' ; },
157+ @ { NeedTest = $True ; Name = ' GITHUB_REF_TYPE' ; },
158+ @ { NeedTest = $True ; Name = ' GITHUB_REPOSITORY' ; },
159+ @ { NeedTest = $True ; Name = ' GITHUB_REPOSITORY_ID' ; },
160+ @ { NeedTest = $True ; Name = ' GITHUB_REPOSITORY_OWNER' ; },
161+ @ { NeedTest = $True ; Name = ' GITHUB_REPOSITORY_OWNER_ID' ; },
162+ @ { NeedTest = $True ; Name = ' GITHUB_RETENTION_DAYS' ; },
163+ @ { NeedTest = $True ; Name = ' GITHUB_RUN_ATTEMPT' ; },
164+ @ { NeedTest = $True ; Name = ' GITHUB_RUN_ID' ; },
165+ @ { NeedTest = $True ; Name = ' GITHUB_RUN_NUMBER' ; },
166+ @ { NeedTest = $True ; Name = ' GITHUB_SERVER_URL' ; },
167+ @ { NeedTest = $True ; Name = ' GITHUB_SHA' ; },
168+ @ { NeedTest = $True ; Name = ' GITHUB_STEP_SUMMARY' ; },
169+ @ { NeedTest = $True ; Name = ' GITHUB_WORKFLOW' ; },
170+ @ { NeedTest = $True ; Name = ' GITHUB_WORKFLOW_REF' ; },
171+ @ { NeedTest = $True ; Name = ' GITHUB_WORKFLOW_SHA' ; },
172+ @ { NeedTest = $True ; Name = ' GITHUB_WORKSPACE' ; },
173+ @ { NeedTest = $True ; Name = ' RUNNER_ARCH' ; },
174+ @ { NeedTest = $True ; Name = ' RUNNER_NAME' ; },
175+ @ { NeedTest = $True ; Name = ' RUNNER_OS' ; },
176+ @ { NeedTest = $True ; Name = ' RUNNER_TEMP' ; },
177+ @ { NeedTest = $True ; Name = ' RUNNER_TOOL_CACHE' ; },
178+ @ { NeedTest = $Artifact.IsPresent -or $Cache.IsPresent ; Name = ' ACTIONS_RUNTIME_TOKEN' ; },
179+ @ { NeedTest = $Artifact.IsPresent ; Name = ' ACTIONS_RUNTIME_URL' ; },
180+ @ { NeedTest = $Cache.IsPresent ; Name = ' ACTIONS_CACHE_URL' ; },
181+ @ { NeedTest = $OpenIdConnect.IsPresent ; Name = ' ACTIONS_ID_TOKEN_REQUEST_TOKEN' ; },
182+ @ { NeedTest = $OpenIdConnect.IsPresent ; Name = ' ACTIONS_ID_TOKEN_REQUEST_URL' ; }
183+ )
184+ [Boolean ]$Failed = $False
185+ ForEach ($Condition In $Conditions ) {
186+ If ($Condition.NeedTest ) {
187+ Try {
188+ If ($Null -ieq $Condition.ExpectedValue ) {
189+ If ([String ]::IsNullOrEmpty((Get-Content - LiteralPath " Env:\$ ( $Condition.Name ) " - ErrorAction ' SilentlyContinue' ))) {
190+ Throw
191+ }
192+ }
193+ Else {
194+ If ((Get-Content - LiteralPath " Env:\$ ( $Condition.Name ) " - ErrorAction ' SilentlyContinue' ) -ine $Condition.ExpectedValue ) {
195+ Throw
196+ }
197+ }
198+ }
199+ Catch {
200+ $Failed = $True
201+ Write-Warning - Message " Unable to get the GitHub Actions resources: Environment path `` $ ( $Condition.Name ) `` is undefined or not equal to expected value!"
202+ }
203+ }
204+ }
205+ If ($Failed ) {
187206 If ($Mandatory.IsPresent ) {
188207 Write-GitHubActionsFail - Message $MandatoryMessage
189208 Throw
0 commit comments