在一个action
中运行多个命令的正确方法是什么?
我想以action
的身份运行python脚本。在运行此脚本之前,我需要安装requirements.txt
。
Dockerfile
创建一个RUN pip install -r requirements.txt
。python:3
图片,并在pip install -r requirements.txt
文件中运行entrypoint.sh
,然后再运行args
中main.workflow
中的参数。pip install
和python myscript.py
都用作args
我想运行存储库中存在的脚本,然后比较2个文件(其输出和一个已经存在的文件)。
这是一个包含两个命令的过程,而在第一个示例中,可以将pip install
命令视为构建命令,而不是测试命令。
我可以为另一个命令创建另一个Docker,其中包含先前Docker的输出吗?
我正在寻找Dockerfile
,entrypoint
或args
中命令位置的准则。
答案 0 :(得分:3)
您可以使用|
属性上的管道run
运行多个命令。检查一下:
name: My Workflow
on: [push]
jobs:
runMultipleCommands:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- run: |
echo "A initial message"
pip install -r requirements.txt
echo "Another message or command"
python myscript.py
bash some-shell-script-file.sh -xe
- run: echo "One last message"
在我的测试中,运行像./myscript.sh
这样的shell脚本会返回``。但是像bash myscript.sh -xe
一样运行就可以了。
如果要在docker机器内部运行 ,则可以在您的run
子句上运行类似的选项:
docker exec -it pseudoName /bin/bash -c "cd myproject; pip install -r requirements.txt;"