Мой вклад в 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»