Не могу точно сопоставить конфигурацию Трэвиса с действием GH - PullRequest
0 голосов
/ 31 марта 2020

Фон

Я использовал Travis-CI в течение долгого времени, но, увидев более быстрые результаты с действиями GH, решил мигрировать, а затем он стал медленнее. : O

У меня есть рабочий репо с ruby и рубинами. Поток CI довольно прост:

  • экземпляр rvm
  • установка гемов
  • запуск пары сценариев для lint JSON и HTML

Проблема

На первый взгляд, я просто попытался преобразовать его 1-1, но рабочий процесс GH был в два раза медленнее (7 минут против 3 минут Трэвиса). Затем я начал разбивать скрипт на GitHub steps, чтобы профилировать то, что требовало времени. Я не мог сделать то же самое на Трэвисе, который я пытался использовать jobs. Итак, мои вопросы:

  1. Являются ли рабочий процесс GitHub и среда Travis CI одинаковыми, как при запуске контейнеров с нуля?
  2. Как можно было бы назвать / отделить каждую задачу в Travis? Похоже, что шаги GH являются последовательными и повторно используют предыдущий шаг, в то время как задания Трэвиса выполняются параллельно, и каждое запускается заново.
  3. Бонусный вопрос: так как это скрипт на основе ruby HTML, он использует NOKOGIRI_USE_SYSTEM_LIBRARIES=true чтобы ускорить установку. Эта единственная строка рекомендована Трэвисом и работает безупречно, но не относится к GH, почему?

Спасибо:)

GH action:

steps:
  - uses: actions/checkout@v2
  - name: Set up Ruby 2.6
    uses: actions/setup-ruby@v1
    with:
      ruby-version: 2.6.x
  - name: Install Dependencies
    run: |
      gem install bundler
      bundle install --jobs 3 --retry 3 --deployment
  - name: Run Jekyll
    run: script/run_jekyll.sh
  - name: Validate JSON
    run: script/validate_json.rb
  - name: Ping Websites
    run: script/ping_websites.rb
  - name: Check Files Formatting
    run: script/check_files_formatting.sh

Трэвис

jobs:
  include:
- stage: Install Dependencies
  script:
    - gem install bundler
    - bundle install --jobs 3 --retry 3
- stage: run jekyll
  script: ./script/run_jekyll.sh
- stage: validate json
  script: ./script/validate_json.rb
- stage: ping websites
  script: ./script/ping_websites.rb
- stage: check files formatting
  script: ./script/check_files_formatting.sh
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...