Фото предоставлено: Горан-Аис
Зависимости, которые вы не можете или не сможете прикреплять версии в надежном постоянном кэше, имеют потенциал для дрейфа. Такова жизнь My Dotfiles Repo Анкет Я Не хочу Чтобы прикрепить большинство вещей там. Это выброс относительно того, что вы обычно настроили, чтобы создать наиболее последовательный, надежный процесс сборки. Для Dotfiles я хочу склониться к тому, чтобы убедиться, что они остаются в курсе, даже если он ломается время от времени в обмен на эту позу.
Одна из проблем, связанных с тем, что репо с DotFiles продолжает правильно функционировать на чистой машине, заключается в том, что первое время пробегает их в чистой среде, является редким занятием. Как правило, это происходит только тогда, когда я настраиваю новый ноутбук или другие, установленные его в первый раз.
Если бы я мог сделать чистую установку на более регулярной основе, это уменьшило бы вероятность того, что небольшие поломки накапливаются со временем. Здесь появляется самая основная форма непрерывной интеграции.
Я начинаю с испытания в области здравомыслия. Анкет Анкет
Может ли сценарий установки выполнить, начать закончить без ошибок?
Я уже видел этот перерыв, когда переименована зависимость или когда я ввожу тонкую синтаксисную ошибку, которую кто -то находит в вилке, когда они пытаются запустить все чистое в первый раз. Я хочу как можно быстрее поймать эти проблемы.
Действия GitHub для macOS DotFiles CI
При просмотре Действия GitHub Документация, я заметил, что они включили возможность запустить действие на виртуальной машине MacOS!
Wat.
Бесплатно.
Wat.
Для репозитории с открытым исходным кодом.
О, да, хорошо.
Все еще . Анкет Анкет Если вы не знаете, получение размещенной виртуальной машины MacOS, хотя это, как правило, не дешево относительно других параметров сервера. Тот факт, что Github предлагает [бесплатно] запускать рабочие нагрузки Mac для проектов OpenSource, является причиной празднования.
Ok. Давайте доберемся до его мяса: действия GitHub — это поведение, которое вы определяете в файле YAML, зарегистрированном в самом репозитории.
Для начала я определил рабочий процесс «Тест на дым» в .github/Workflow/Smoke.yml В моем Dotfiles Repo:
name: Smoke Test CI on: [push] jobs: build: runs-on: macOS-latest steps: - uses: actions/checkout@v1 - name: Execute full install run: ./setup.sh
Каждый толчок к репозиции DotFiles предоставляет временную виртуальную машину macOS, проверяет код GIT и выполняет полную установку DotFiles (через ./ setup.sh ).
Результаты запускаемых сборки находятся на вкладке «Действия» для этого репозитория на GitHub:
И вы можете сверлить, чтобы увидеть результаты каждого шага и журналов:
Вот и все!
Получение этой настройки уже поймало Некоторые ошибки Анкет * *
_** Одно предостережение: для небольшой горстки вещей мне пришлось обнаружить, что я бегал в действие GitHub и пропустил их, потому что им потребовались привилегии, которые были заперты или недоступны для этой виртуальной машины. В целом, GitHub предоставляет некоторые переменные среды по умолчанию в виртуальной машине при выполнении действия GitHub. Я использовал их как подсказка, чтобы пропустить их. _
Оригинал: «https://dev.to/mattorb/ci-your-macos-dotfiles-with-github-actions-17a8»