#homebrew #github-actions
#доморощенный #github-действия
Вопрос:
Я никогда в жизни не использовал macOS, поэтому я не уверен, связано ли это с изображением, используемым GitHub actions, самим homebrew или с тем, как я его использую:
Я пытаюсь использовать действия GitHub для создания и тестирования проекта на C в Ubuntu и macOS. Сборка кода с использованием CMake занимает всего около одной минуты в обоих случаях, однако установка зависимостей (Boost и Lua) занимает более трех минут на macOS, в отличие от 20 секунд на Ubuntu. Мой workflow.yml
выглядит следующим образом:
jobs:
build-and-test:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
include:
- os: ubuntu-latest
INSTALL_DEPS: sudo apt-get install -yq libboost-dev libboost-graph-dev lua5.3 liblua5.3-dev
CC: gcc
CXX: g
- os: macos-latest
INSTALL_DEPS: brew install boost lua
CC: clang
CXX: clang
steps:
- uses: actions/checkout@v2
- name: install-dependencies
run: ${{ matrix.INSTALL_DEPS }}
# ...
Кажется, что boost
это единственный пакет, который я могу установить с помощью homebrew, в отличие от более мелкозернистого libboost-dev
libboost-graph-dev
.
Могу ли я что-нибудь сделать здесь, если я не хочу создавать Boost из исходного кода на macOS? Я знаю, что можно кэшировать зависимости с помощью действий GitHub, но это кажется слишком сложным для моего варианта использования, и я на самом деле не знаю, как использовать это с homebrew в первом случае.
Ответ №1:
Я провел небольшой тест, чтобы проверить, сколько времени требуется для использования brew в Ubuntu
jobs:
build-and-test:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
include:
- os: ubuntu-latest
INSTALL_DEPS: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" amp;amp; date amp;amp; brew install boost lua amp;amp; date
#INSTALL_DEPS: sudo apt-get install -yq libboost-dev libboost-graph-dev lua5.3 liblua5.3-dev
CC: gcc
CXX: g
- os: macos-latest
INSTALL_DEPS: brew install boost lua
CC: clang
CXX: clang
steps:
- uses: actions/checkout@v2
- name: install-dependencies
run: ${{ matrix.INSTALL_DEPS }}
И для запуска brew install boost lua
потребовалось около 26 секунд
Fri Dec 18 11:16:02 UTC 2020
Fri Dec 18 11:16:28 UTC 2020
Где на macOS я получил 2:33
, 46s
, 45s
. Так что по сравнению с наивысшим значением это большая разница. Но сравнение 45 с 26 с — это не так (все еще почти в 2 раза, но звучит не так уж плохо). Я думаю, что на самом деле нет смысла это оптимизировать. Может быть много аспектов, которые могут повлиять, и даже это сообщение также может сыграть свою роль в этом
Если вы находитесь на хорошем пути к завершению своего конвейера, сосредоточьтесь на этом, так как вы можете потерять много времени, борясь за лучшую производительность без удачи, поскольку какой-то аспект может выйти из-под вашего контроля.
Комментарии:
1. Ах, я пропустил это замечание о том, что рабочие процессы macOS теперь занимают больше времени, я думаю, это может ответить на него.