GitHub操作将env类型的变量赋给字符串数组
我遇到了您在图像中看到的以下问题。
我有一个.js文件,它返回一个URL字符串数组。
然后,我应该将此数组赋给一个env
变量,如下面的示例所示,但我得到以下错误。
您可以告诉我哪里错了。
on:
workflow_dispatch:
name: Test Download Multifile
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
name: Check out current commit
- name: Url
run: |
URL=$(node ./actionMultifile.js)
echo $URL
echo "URL=$URL" >> $GITHUB_ENV
actionMultifile.js
async function getData(){
const url = [
"https://upload.wikimedia.org/wikipedia/commons/thumb/c/c9/Tyrannosaurus_rex_Sue_at_FMNH.jpg/440px-Tyrannosaurus_rex_Sue_at_FMNH.jpg",
"https://upload.wikimedia.org/wikipedia/commons/thumb/b/bc/Mosasaurus_beaugei_34.JPG/440px-Mosasaurus_beaugei_34.JPG"
]
return url;
}
getData().then((url) => {
console.log(url);
});
解决方案
出现问题是因为您需要使用multiline strings
设置url环境变量这是因为此处的URL变量不是这样保存的:
['https://upload.wikimedia.org/wikipedia/commons/thumb/c/c9/Tyrannosaurus_rex_Sue_at_FMNH.jpg/440px-Tyrannosaurus_rex_Sue_at_FMNH.jpg', 'https://upload.wikimedia.org/wikipedia/commons/thumb/b/bc/Mosasaurus_beaugei_34.JPG/440px-Mosasaurus_beaugei_34.JPG']
但像这样:
[
'https://upload.wikimedia.org/wikipedia/commons/thumb/c/c9/Tyrannosaurus_rex_Sue_at_FMNH.jpg/440px-Tyrannosaurus_rex_Sue_at_FMNH.jpg',
'https://upload.wikimedia.org/wikipedia/commons/thumb/b/bc/Mosasaurus_beaugei_34.JPG/440px-Mosasaurus_beaugei_34.JPG'
]
因此,您的工作流程应该如下所示:
steps:
- name: Checkout repository content
uses: actions/checkout@v2 # Checkout the repository content to github runner.
- name: Setup Node Version
uses: actions/setup-node@v2
with:
node-version: 14 # Install the node version needed
- name: set multiline env var
run: |
echo 'URL<<EOF' >> $GITHUB_ENV
node ./actionMultifile.js >> $GITHUB_ENV
echo 'EOF' >> $GITHUB_ENV
然后,请注意,您将不能直接使用${{ env.URL }}
变量,否则它将只打印第一行([
)并中断。您需要在引号之间使用它("
)。
例如:
- name: use env var
run: echo "${{ env.URL }}"
- name: use env var directly
run: echo "$URL"
如果您想看一下,我在这里测试了一下:
- workflow file
- workflow run
相关文章