Github action 分配一个类型为 env 的变量,一个字符串数组
Github action assign a variable of type env an array of strings
我遇到了您在图片中看到的以下问题。
我有 a.js 文件,其中 returns 我有一个 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"
我这里测试过,你要看的话:
我遇到了您在图片中看到的以下问题。
我有 a.js 文件,其中 returns 我有一个 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"
我这里测试过,你要看的话: