Github action не загружает артефакт - PullRequest
2 голосов
/ 03 октября 2019

У меня проблема с загрузкой артефактов в 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

Все работает нормально до "публикации результатов теста", в этот момент ничего не записывается в журналы и никакие артефакты не загружаются. Если я просматриваю журнал рабочего процесса, рядом с этим шагом появляется серый значок (не обычный флажок или красный значок x), поэтому я действительно озадачен тем, что может произойти. Я добавил произвольный материал к шагу «Очистить материал», просто чтобы проверить, что происходит, и этот шаг тоже не выполняется.

Я пытался возиться с путем, думая, что он может быть связан спуть неверен или что-то, но это не помогло. Независимо от того, что я добавляю в нижней части этого файла, происходит одно и то же поведение.

Я попытался запустить другой файл рабочего процесса, который загружает артефакты и работает нормально, журналы показали, что действие загрузки было вызвано и чтоАртефакт был сохранен, но я не вижу ничего подобного, когда используется мой файл yaml.

1 Ответ

3 голосов
/ 04 октября 2019

Каждый шаг задания сбрасывает рабочий путь на 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
...