当failOnStderr: true时,Azure脚本任务会出现bash错误,这并不是没有这个标志

use*_*898 1 azure azure-devops azure-pipelines azure-devops-pipelines

我有有线行为\n当任务中未设置failOnStderr: true 时一切正常,但是
\n当我使用failOnStderr: true 调用这样的脚本任务时:

\n
- script:  |\n     echo \'Start invoking Fastfile\'\n     fastlane release --verbose projectName:${{parameters.projectName}} appIdentifier:${{parameters.appIdentifier}} versionNumber:${{parameters.versionNumber}} buildNumber:${{parameters.buildNumber}} plistFileFtpBasePath:${{parameters.plistFileFtpBasePath}} ArtifactsDirectory:$(System.ArtifactsDirectory)\n     echo \'Done invoking Fastfile\'\n    failOnStderr: true \n    workingDirectory: \'$(System.ArtifactsDirectory)/ios_artifacts\'\n    displayName: \'create keychain invoke fastlane\'\n
Run Code Online (Sandbox Code Playgroud)\n

我收到此错误:

\n
2020-09-30T07:54:45.8179430Z INFO [2020-09-30 07:54:45.81]: [32mfastlane.tools finished successfully \xc3\xb0\xc5\xb8\xc5\xbd\xe2\x80\xb0[0m\n2020-09-30T07:54:45.8917310Z Done invoking Fastfile\n2020-09-30T07:54:45.8948720Z \n2020-09-30T07:54:45.9020160Z ##[error]Bash wrote one or more lines to the standard error stream.\n2020-09-30T07:54:45.9033610Z ##[error]/Users/runner/hostedtoolcache/Ruby/2.7.1/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.161.0/fastlane_core/lib/fastlane_core/ui/interface.rb:141: warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call\n/Users/runner/hostedtoolcache/Ruby/2.7.1/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.161.0/fastlane_core/lib/fastlane_core/ui/errors/fastlane_error.rb:9: warning: The called method `initialize\' is defined here\n\n2020-09-30T07:54:45.9035550Z ##[error]security: SecKeychainSearchCopyNext: The specified item could not be found in the keychain.\n\n2020-09-30T07:54:45.9037370Z ##[error]/Users/runner/hostedtoolcache/Ruby/2.7.1/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.161.0/gym/lib/gym/generators/package_command_generator_xcode7.rb:154: warning: URI.escape is obsolete\n\n2020-09-30T07:54:45.9040080Z ##[error]/Users/runner/hostedtoolcache/Ruby/2.7.1/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.161.0/gym/lib/gym/generators/package_command_generator_xcode7.rb:155: warning: URI.escape is obsolete\n/Users/runner/hostedtoolcache/Ruby/2.7.1/x64/lib/ruby/gems/2.7.0/gems/fastlane-2.161.0/gym/lib/gym/generators/package_command_generator_xcode7.rb:156: warning: URI.escape is obsolete\n\n2020-09-30T07:54:45.9042740Z ##[error]warning: /Users/runner/Library/Developer/Xcode/Archives/2020-09-30/xxxx_2019.1.4.xxxx-xxxx.1.1.0.4_SPRINT_14 2020-09-30 07.51.27.xcarchive/BCSymbolMaps/1BD5CB31-31FC-328B-A827-73EA51BB6041.bcsymbolmap: No such file or directory: not unobfuscating.\n\n2020-09-30T07:54:45.9045210Z ##[error]warning: /Users/runner/Library/Developer/Xcode/Archives/2020-09-30/xxxx_1.1.xxxx-xxxx.1.1.0.4_SPRINT_14 2020-09-30 07.51.27.xcarchive/BCSymbolMaps/9FCBA8ED-D8FD-3C16-9740-5E2A31F3E959.bcsymbolmap: No such file or directory: not unobfuscating.\n\n2020-09-30T07:54:45.9047670Z ##[error]warning: /Users/runner/Library/Developer/Xcode/Archives/2020-09-30/xxxx_1.1.xxxx-xxxx.1.1.0.4_SPRINT_14 2020-09-30 07.51.27.xcarchive/BCSymbolMaps/999C2967-8A06-3CD5-82D7-D156E9440A0C.bcsymbolmap: No such file or directory: not unobfuscating.\n\n2020-09-30T07:54:45.9050110Z ##[error]warning: /Users/runner/Library/Developer/Xcode/Archives/2020-09-30/xxxx_1.1.xxxx-xxxx.1.1.0.4_SPRINT_14 2020-09-30 07.51.27.xcarchive/BCSymbolMaps/EB7DF7BE-351D-3A4A-949C-0AE12606A3E2.bcsymbolmap: No such file or directory: not unobfuscating.\n\n2020-09-30T07:54:45.9052570Z ##[error]warning: /Users/runner/Library/Developer/Xcode/Archives/2020-09-30/xxxx_1.1.xxxx-xxxx.1.1.0.4_SPRINT_14 2020-09-30 07.51.27.xcarchive/BCSymbolMaps/9702769F-1F06-3001-AB75-5AD38E1F7D66.bcsymbolmap: No such file or directory: not unobfuscating.\n\n2020-09-30T07:54:45.9055030Z ##[error]warning: /Users/runner/Library/Developer/Xcode/Archives/2020-09-30/xxxx_1.1.xxxx-xxxx.1.1.0.4_SPRINT_14 2020-09-30 07.51.27.xcarchive/BCSymbolMaps/D560471D-F43F-30D6-9717-5252EE100F10.bcsymbolmap: No such file or directory: not unobfuscating.\n\n2020-09-30T07:54:45.9056620Z ##[error]Additional writes to stderr truncated\n2020-09-30T07:54:45.9063410Z ##[section]Finishing: create keychain invoke fastlane\n
Run Code Online (Sandbox Code Playgroud)\n

更新\n设置为 false 时仍然不起作用

\n
- script:  |\n     echo \'Start invoking Fastfile\'\n     fastlane release --verbose projectName:${{parameters.projectName}} appIdentifier:${{parameters.appIdentifier}} versionNumber:${{parameters.versionNumber}} buildNumber:${{parameters.buildNumber}} plistFileFtpBasePath:${{parameters.plistFileFtpBasePath}} ArtifactsDirectory:$(System.ArtifactsDirectory)\n     echo \'Done invoking Fastfile\'\n    failOnStderr: false\n    workingDirectory: \'$(System.ArtifactsDirectory)/ios_artifacts\'\n    displayName: \'create keychain invoke fastlane\'\n
Run Code Online (Sandbox Code Playgroud)\n

在此输入图像描述

\n

Mer*_*SFT 6

这是预期的行为。

设置后,如果有任何错误写入StandardErrorfailOnStderr: true,任务将失败。

在此输入图像描述

相反,如果failOnStderrfalse,任务的失败将取决于退出代码当退出代码不为0时,任务将失败。

通常,您应该知道将错误写入stderr不会导致退出代码非零。这failOnStderrtrue或是false两个不同的故障条件。

根据您分享的日志:

2020-09-30T07:54:45.9020160Z ##[error]Bash wrote one or more lines to the standard error stream.
Run Code Online (Sandbox Code Playgroud)

您可以看到写入Stderr流中有一些错误。此时,任务按预期失败,因为您设置failOnStderrtrue

更新

样本:

成功但有警告:

在此输入图像描述

因 stderr 失败:

在此输入图像描述