如何将 url 的列表传递到 Azure 管道中的变量值
How do I pass list of url's into a variable value in Azure pipelines
我的要求是将 url 的列表作为参数存储为变量并将该变量传递给 (Google pagespeed)API url-一个一个得到API个结果。
ex - https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=$(来自参数的变量)&key=xyz
我正在传递 url 的列表(Space 分隔)作为 azure 管道中的参数值,如何将这些 url 存储到变量中?passing url's as parameter
我不熟悉正则表达式,尝试在下面的设置中浏览一些博客来验证 url 并将它们存储到一个变量中。我不断收到语法错误。
regex=""(http|https)://)"
+ “[a-zA-Z0-9@:%._\+~#?&//=]{2,256}\.[a-z]”
+ "{2,6}\b([-a-zA-Z0-9@:%._\+~#?&//=]*)""
echo ${{ parameters.pathsCsv }}
echo $(Build.BuildNumber)
if [[ ${{ parameters.pathsCsv }} =~ $regex ]]
then
appName="${BASH_REMATCH[1]}" # Get the sitename from the domain
echo "##vso[task.setvariable variable=appName]$appName"
else
echo "${{ parameters.pathsCsv }} doesn't match expected URL pattern"
exit 0
fi
echo "$(appName)"
你可以尝试使用object类型的参数,循环遍历参数。例如:
parameters:
- name: Urls
type: object
values:
- value
pool:
vmImage: ubuntu-latest
steps:
- ${{ each parameter in parameters.Urls }}:
- script: echo "##vso[task.setvariable variable=appName]${{ parameter }}"
- script: echo $(appName)
script keyword 是命令行任务的快捷方式。该任务在 Windows 上使用 cmd.exe 并在其他平台上使用 Bash 运行脚本。
当 运行 管道时,您可以提供这样的参数:
这是关于 Loop through parameters 的文档。
能够将 url 存储到变量中并使用以下设置打印它们
步数:
- task: Bash@3
inputs:
targetType: 'inline'
script: |
IFS=' ' read -r -a url <<< "${{ parameters.pathUrls }}"
#echo "${url[0]}"
for pathUrls in "${url[@]}"
do
echo "$pathUrls"
done
我的要求是将 url 的列表作为参数存储为变量并将该变量传递给 (Google pagespeed)API url-一个一个得到API个结果。
ex - https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=$(来自参数的变量)&key=xyz
我正在传递 url 的列表(Space 分隔)作为 azure 管道中的参数值,如何将这些 url 存储到变量中?passing url's as parameter
我不熟悉正则表达式,尝试在下面的设置中浏览一些博客来验证 url 并将它们存储到一个变量中。我不断收到语法错误。
regex=""(http|https)://)"
+ “[a-zA-Z0-9@:%._\+~#?&//=]{2,256}\.[a-z]”
+ "{2,6}\b([-a-zA-Z0-9@:%._\+~#?&//=]*)""
echo ${{ parameters.pathsCsv }}
echo $(Build.BuildNumber)
if [[ ${{ parameters.pathsCsv }} =~ $regex ]]
then
appName="${BASH_REMATCH[1]}" # Get the sitename from the domain
echo "##vso[task.setvariable variable=appName]$appName"
else
echo "${{ parameters.pathsCsv }} doesn't match expected URL pattern"
exit 0
fi
echo "$(appName)"
你可以尝试使用object类型的参数,循环遍历参数。例如:
parameters:
- name: Urls
type: object
values:
- value
pool:
vmImage: ubuntu-latest
steps:
- ${{ each parameter in parameters.Urls }}:
- script: echo "##vso[task.setvariable variable=appName]${{ parameter }}"
- script: echo $(appName)
script keyword 是命令行任务的快捷方式。该任务在 Windows 上使用 cmd.exe 并在其他平台上使用 Bash 运行脚本。
这是关于 Loop through parameters 的文档。
能够将 url 存储到变量中并使用以下设置打印它们
步数:
- task: Bash@3
inputs:
targetType: 'inline'
script: |
IFS=' ' read -r -a url <<< "${{ parameters.pathUrls }}"
#echo "${url[0]}"
for pathUrls in "${url[@]}"
do
echo "$pathUrls"
done