Мой вклад в Github Действия Хакатон на dev
Этот проект построен на четырех мощных технологиях:
- Jekyll — используется в качестве статического генератора сайта
- Pandoc — используется в качестве инструмента рендеринга (Markdown> HTML) для CV
- Страницы GitHub — используются в качестве хостинга
- Действия GitHub — используется для автоматизации сборки и развертывания
Мой рабочий процесс
Есть две рабочие процессы: один для блога (веб-сайт) и один для CV (CV). Они оба используют следующие действия GitTub:
В обоих рабочих процессах задание сборки выполняется в контейнере, который отличается от рабочего процесса: Ruby для блога и Pandoc для CV.
Вот как работа постройки выглядит как для блога:
jobs:
build:
runs-on: ubuntu-latest
container:
image: ruby:2.6.4
options:
--workdir /src
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Build blog
run: |
bundle install
bundle exec jekyll build --verbose --destination _site
- name: Upload artifacts
uses: actions/upload-artifact@v2
with:
name: _site
path: _site
Как видите, я запускаю шаги в контейнере Ruby. Это упрощает вещи, связанные с разрешениями файла и монтажа каталога, поскольку оформление заказа изготовлено внутри контейнера.
Шаг развертывания выполняется через команду запуска оболочки на данный момент, для лучшей чистоты (можно заменить на стороннее действие или на заказ): это делает коммит для Gh-Pages ветвь, которая настроен для страниц GitHub.
deploy:
if: github.ref == 'refs/heads/master'
needs: build
runs-on: ubuntu-latest
steps:
- name: Checkout gh-pages branch
uses: actions/checkout@v2
with:
ref: 'gh-pages'
- name: Get the build artifact
uses: actions/download-artifact@v2
with:
name: _site
path: ./
- name: Deploy (push) to gh-pages
run: |
git config user.name "$GITHUB_ACTOR"
git config user.email "${GITHUB_ACTOR}@bots.github.com"
git add -A
git commit -a -m "Updated Website"
git remote set-url origin "https://x-access-token:${{ secrets.DEPLOY_TOKEN }}@github.com/vasylenko/serhii.vasylenko.info.git"
git push --force-with-lease origin gh-pages
Категория подачи:
DIY развертывание
YAML-файл или ссылка на код
Вот ссылка на репозиторий с рабочими процессами ( Смотрите/.github/workflows directory)
Василенко/Серхii.vasylenko.info.
Исходный код моего личного сайта, питающийся от Hugo
Персональный блог, работающий от Hugo
Настройка темы Hugo и Papermod:
Внимание и Updatenotice — Цветные блоки, используемые для информирования о важных изменениях в публикации
Пример
Внимание: https://serhii.vasylenko.info/2021/05/21/Configure-http-security-heeders-with-cloudfront-functions.html.Пример
Updatenotice: https://serhii.vasylenko.info/2021/01/20/terrasasoring-mac1-metal-at-aws.html.фрагмент — Складной блок текста (AKA SPOILER), полезный для фрагментов кода
Отчеты о производительности
Маяк
Gtmetrix.
Дополнительные ресурсы/информация
https://jekyllrb.com https://pandoc.org
Оригинал: «https://dev.to/svasylenko/githubactions-powered-blog-and-online-cv-4kk8»