Если вы используете генератор статических сайтов, возможно, вы захотите иметь некоторый статический контент, который периодически обновляется, например, раз в год, давайте посмотрим, как вы можете его автоматизировать!

Каждый год вы, вероятно, хотите убедиться, что ваш заголовок об авторских правах на вашем сайте (-ах) обновлен, если вы управляете большим количеством сайтов, вы захотите автоматизировать это!

Чтобы решить эту проблему, вы можете периодически создавать свой веб-сайт на 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 или принесите мне кофе, если хотите ☕.