Если вы используете генератор статических сайтов, возможно, вы захотите иметь некоторый статический контент, который периодически обновляется, например, раз в год, давайте посмотрим, как вы можете его автоматизировать!
Каждый год вы, вероятно, хотите убедиться, что ваш заголовок об авторских правах на вашем сайте (-ах) обновлен, если вы управляете большим количеством сайтов, вы захотите автоматизировать это!
Чтобы решить эту проблему, вы можете периодически создавать свой веб-сайт на Netlify (или аналогичном), ответ не так прост, и некоторые инструменты (Github Actions) имеют подводные камни.
Еще один пример использования: я недавно запустил переработку бизнес-сайта моих братьев по обучению игре на гитаре: cgguitar.co.uk. время сборки.»
Для достижения своих целей я хотел периодически планировать сборки моего веб-сайта Netlify. Netlify не имеет встроенной этой функции, однако у Netlify есть «веб-хук», который вы можете вызвать для своей сборки.
В этом посте я предлагаю два способа запустить эту сборку, используя Github Actions или CircleCI. Использование Github Actions может иметь существенный недостаток, в зависимости от варианта использования, продолжайте читать, чтобы узнать об этом больше!
Как найти хук сборки в Netlify
Войдите в Netlify и перейдите к настройкам своего сайта и локальному разделу «Сборка и развертывание», ваш хук сборки будет там.
Вы можете проверить это, выполнив запрос curl в своем терминале, вы должны увидеть, как он запускает сборку вашего веб-сайта Netlify:
Важно: Убедитесь, что вы
NETLIFY_BUILD_HOOK_TOKEN
держите в секрете, иначе любой может вызвать вашу сборку и потенциально заставить вас превысить квоту на сборку.
Могут ли действия Github сделать это?
Действия Github позволяют выполнять непрерывную интеграцию в Github, здесь они кажутся идеальными…
В вашем репозитории Github в следующей папке .github/workflows
вы можете создать:
Вышеупомянутая конфигурация будет запускаться каждый день около 15:00.
Вы захотите защитить свой токен build_hook
в секрете на Github.
Я сделал это изначально и думал, что работа сделана правильно? Ну, не совсем.
Действия Github отключаются в проектах через 60 дней, если в репозитории нет активности, то есть до свидания запланированные сборки.
Вышеупомянутое ограничение может быть приемлемым, в зависимости от вашего варианта использования, но в моем случае, когда я хотел убедиться, что загружаю последние видео из плейлиста YouTube, это было бесполезно, потому что сам код веб-сайта может не обновляться очень часто, но могут быть добавлены новые видео.
Вместо этого используйте CircleCI
Одной из альтернатив действиям Github является использование CircleCI для этого, у него также есть щедрый бесплатный уровень, поэтому за это не нужно взимать плату.
Вы можете создать такую конфигурацию:
- Создайте папку в репозитории Git под названием
.circleci
. - Создайте файл с именем
config.yml
Заполните config.yml
чем-то вроде следующего (вы можете использовать другое изображение, если хотите). Это будет строиться каждый день в 15:00.
Теперь вы можете создать проект в CircleCI и протестировать свою сборку. NETLIFY_BUILD_HOOK_TOKEN
нужно будет установить как переменную среды, аналогично Github, в настройках CircleCI для вашего проекта.
Я разместил здесь полную статью о том, как периодически извлекать данные из API YouTube для встраивания динамических плейлистов YouTube без необходимости раскрывать ваш ключ API клиенту: https://griffadev.medium.com/adding-dynamic-content-from -an-api-to-a-static-website-in-build-time-1e086e696442
Если вы хотите узнать больше о моих работах, подписывайтесь на меня в Твиттере @griffadev или принесите мне кофе, если хотите ☕.