Как стать автором
Обновить

Комментарии 6

Напишите, пожалуйста, как готовить Github Action, чтобы компилировать непопулярным gcc, который только tar-архивом распространяются.

Вообще, раннер - это одноразовая виртуалка или она сохраняет всё установленное-распакованное?

Спасибо за интересный вопрос! Раннеры GitHub Actions — это временные виртуальные машины, которые запускаются заново для каждого workflow. Значит все изменения, сделанные в ходе выполнения workflow, не сохраняются для последующих запусков.

Если вам нужно использовать GCC в виде tar, вы можете добавить шаг в ваш workflow для загрузки и распаковки этого архива. Вот пример:

- name: Custom GCC install
  run: |
    wget https://example.com/gcc-custom.tar.gz
    tar -xzf gcc-custom.tar.gz
    echo "${PWD}/gcc-custom/bin" >> $GITHUB_PATH

Этот шаг загружает архив, распаковывает его и добавляет путь к файлам GCC в PATH, чтобы вы могли использовать эту версию компилятора в дальнейшем.

Если вы часто используете этот компилятор и хотите ускорить процесс, можно воспользоваться кэшированием с помощью actions/cache, чтобы избежать повторной загрузки и распаковки при каждом запуске.

Спасибо.

Да, очень хочу ускорить процесс, т.к. китайский сайт его выдает несколько минут, хорошо хоть регистрацию не просит.

А что мешает собрать кастомный docker image со скаченным и настроенным gcc и использовать в воркфлоу этот образ для остальных шагов? Это ведь ИМХО гораздо проще и быстрее чем качать-настраивать-кешировать-доставать из кеша, или нет?

Да, собрать свой Docker-образ и использовать его в Actions — проще и быстрее. Особенно если сборка регулярная и тулчейн тяжёлый. Просто я показал способ «в лоб», без Docker, как и в статье, без его упоминания, но для постоянного использования образ — отличный вариант. 

Про использование контейнеров для разных задач и разбор по тому же принципу я тоже сделаю, как только закончу с серией по гиту :)

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации