Github 操作未上传工件
Github action not uploading artifact
我在从工作流程中将工件上传到 github 时遇到问题。
这是我的 yaml 文件:
on:
push:
branches:
- master
jobs:
build:
name: build and test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Install robotframework and dependencies
run: |
pip install selenium
pip install robotframework
pip install robotframework-seleniumlibrary
pip install robotframework-imaplibrary
pip install robotframework-httplibrary
pip install robotframework-requests
- name: Download and install chromedriver
run: |
wget http://chromedriver.storage.googleapis.com/77.0.3865.10/chromedriver_linux64.zip
sudo unzip chromedriver_linux64.zip -d /usr/local/bin
export CHROME_BIN=chromium-browser
- name: Run robot tests
run: |
cd robot/tests
python -m robot -i ready bookingform.robot
- name: publish test results
uses: actions/upload-artifact@v1
with:
name: report
path: report.html
- name: clean up stuff
run: |
history
pwd
在 "publish test results" 之前一切 运行 都很好,此时没有任何内容写入日志,也没有上传任何工件。如果我查看工作流日志,会发现该步骤旁边有一个灰色图标(不是通常的复选标记或红色 x),所以我真的对可能发生的事情感到困惑。我在 "clean up stuff" 步骤中添加了任意内容只是为了测试会发生什么,而该步骤也不是 运行。
我试过弄乱路径,认为它可能与路径无效或其他原因有关,但这并没有帮助。无论我在该文件底部附近添加什么,都会发生相同的行为。
我已经尝试 运行使用另一个上传工件的工作流文件,运行 没问题,日志显示上传操作已被调用并且工件已保存,但我没有使用我的 yaml 文件时看到类似的东西。
每个作业步骤都会将工作路径重置为 GITHUB_WORKSPACE
,这将是 actions/checkout
运行后存储库的根目录。
upload-artifact
操作很可能找不到 report.html
,因为它不再位于正确的目录中。
尝试按如下方式更改路径:
- name: publish test results
uses: actions/upload-artifact@v1
with:
name: report
path: robot/tests/report.html
还有一个working-directory
可以设置一个步骤。但是,它似乎与 uses
的操作不兼容。它只能应用于 run
个脚本步骤。
将 working-directory
与 uses
一起使用 不会 工作:
- name: publish test results
working-directory: robot/tests
uses: actions/upload-artifact@v1
with:
name: report
path: report.html
使用 working-directory
和 run
将 工作:
- name: print test results
working-directory: robot/tests
run: cat report.html
我在从工作流程中将工件上传到 github 时遇到问题。
这是我的 yaml 文件:
on:
push:
branches:
- master
jobs:
build:
name: build and test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Install robotframework and dependencies
run: |
pip install selenium
pip install robotframework
pip install robotframework-seleniumlibrary
pip install robotframework-imaplibrary
pip install robotframework-httplibrary
pip install robotframework-requests
- name: Download and install chromedriver
run: |
wget http://chromedriver.storage.googleapis.com/77.0.3865.10/chromedriver_linux64.zip
sudo unzip chromedriver_linux64.zip -d /usr/local/bin
export CHROME_BIN=chromium-browser
- name: Run robot tests
run: |
cd robot/tests
python -m robot -i ready bookingform.robot
- name: publish test results
uses: actions/upload-artifact@v1
with:
name: report
path: report.html
- name: clean up stuff
run: |
history
pwd
在 "publish test results" 之前一切 运行 都很好,此时没有任何内容写入日志,也没有上传任何工件。如果我查看工作流日志,会发现该步骤旁边有一个灰色图标(不是通常的复选标记或红色 x),所以我真的对可能发生的事情感到困惑。我在 "clean up stuff" 步骤中添加了任意内容只是为了测试会发生什么,而该步骤也不是 运行。
我试过弄乱路径,认为它可能与路径无效或其他原因有关,但这并没有帮助。无论我在该文件底部附近添加什么,都会发生相同的行为。
我已经尝试 运行使用另一个上传工件的工作流文件,运行 没问题,日志显示上传操作已被调用并且工件已保存,但我没有使用我的 yaml 文件时看到类似的东西。
每个作业步骤都会将工作路径重置为 GITHUB_WORKSPACE
,这将是 actions/checkout
运行后存储库的根目录。
upload-artifact
操作很可能找不到 report.html
,因为它不再位于正确的目录中。
尝试按如下方式更改路径:
- name: publish test results
uses: actions/upload-artifact@v1
with:
name: report
path: robot/tests/report.html
还有一个working-directory
可以设置一个步骤。但是,它似乎与 uses
的操作不兼容。它只能应用于 run
个脚本步骤。
将 working-directory
与 uses
一起使用 不会 工作:
- name: publish test results
working-directory: robot/tests
uses: actions/upload-artifact@v1
with:
name: report
path: report.html
使用 working-directory
和 run
将 工作:
- name: print test results
working-directory: robot/tests
run: cat report.html