需要工作流将GitHub Issue body作为一个文件读取并逐行解析,以从Issue body中获取包名称和版本,并存储在两个不同的变量中,并将这两个变量复制到json格式的package.json文件中。
问题如下:
Issue to pull husky package #1
Package Name
husky
Package Version
4.3.8
Purpose
test-purpose
Maintainer Team
abc
现在,从上面的Issue主体,在获得评论部分的“/approve”后,将触发工作流来安装所需的NPM包
尝试根据以下评论打印问题正文:
name: check_issue_approval
on:
issue_comment:
types: [opened, edited]
env:
PKG_VER: ${{ github.event.issue.title }}
jobs:
check_issue_approval:
runs-on: ubuntu-latest
if: contains(github.event.comment.body, '/approve')
outputs:
approved: ${{ steps.check-approval.outputs.approved }}
steps:
- name: Check required package
run: |
while IFS="" read -r line || [ -n "$line" ]
echo "Checking $BODY file for the required package and version"
do
# cat "$BODY" > "$line"
if ( "$line" eq "Package Name" )
then
echo "$line"
fi
done <"$BODY"
env:
BODY: ${{ github.event.issue.body }}
- name: Install and Upload required NPM package from Issue into Jfrog Artifactory
run: |
T="${{ env.PKG_VER }}" # T means Issue Title
S="${T##* }"
IFS=','
read -ra arr <<< "$S"
for val in "${arr[@]}";
do
printf "name = $val\n"
npm install --registry local-registry "$val"
done
我可以打印完整的问题正文,但无法仅获取包名称和版本,因为它们位于不同的行中,以将它们存储在单独的变量中,并且可以在命令中将它们用作输入变量,如:
npm i $first@$second
意思
npm i husky@4.3.8
。
请让我知道如何从问题正文中仅获得作为单独变量的pkg名称和版本。