Вот 4 полезных действия GitHub для улучшения рабочего процесса

Если вы разместите свой код на GitHub, вы можете воспользоваться GitHub Actions. Вместо того, чтобы запускать все тесты и линтеры вручную, вы можете использовать GitHub Actions для этих задач.

Без лишних слов, вот четыре действия GitHub, которые экономят время, которые улучшат ваш рабочий процесс. Если вы не знаете, что такое Github Actions и как их использовать - я предлагаю сначала прочитать этот пост.

1. Проверьте свою веб-страницу с помощью Lighthouse Test в Google Chrome.

Это действие объединяет полезные аудиты маяка Google для веб-страниц - в частности, тестирование производительности, доступности, передовых методов, SEO и прогрессивных веб-приложений.

Прямо сейчас действие распечатает пять оценок (из 100) на выходе и загрузит версии отчета HTML и JSON в качестве артефактов.

В следующем выпуске действие позволит вам указать пороговые значения для каждого теста и, при необходимости, не выполнить этот шаг, если они не достигнуты.

использование

Следующий рабочий процесс запускает аудит Lighthouse на jarv.is, показывает пять баллов в выходных данных шага и выгружает результаты .html и .json в качестве артефактов для загрузки (как показано выше).

workflow.yml файл:

name: Audit live site
on: push
jobs:
  audit:
    runs-on: ubuntu-latest
    steps:
    - name: Audit live URL
      uses: jakejarvis/lighthouse-action@master
      with:
        url: 'https://jarv.is/'
    - name: Upload results as an artifact
      uses: actions/upload-artifact@master
      with:
        name: report
        path: './report'

Lighthouse очень полезен, когда вы создаете прогрессивные веб-приложения. Проект вдохновлен GoogleChromeLabs / lighthousebot.

2. Выполните команды SSH с помощью действий GitHub.

Это действие запустит предоставленный аргумент как команду на вашем $ HOST через SSH. Полезно, если вы хотите запускать команды на своем частном сервере после каждой фиксации или нажатия.

использование

Чтобы использовать действие, просто добавьте следующие строки в свой .github/main.workflow:

action "Run deploy script" {
  uses = "maddox/actions/ssh@master"
  args = "/opt/deploy/run"
  secrets = [
    "PRIVATE_KEY",
    "HOST",
    "USER"
  ]
}

Обязательные аргументы

Аргумент, который вы будете использовать, - это команда, которая будет запускаться на вашем сервере через SSH.

Примеры

  • args = "/opt/deploy/run"
  • args = "touch ~/.reload"

Обязательные секреты

Вам нужно будет предоставить некоторые секреты, чтобы использовать действие.

  • PRIVATE_KEY: Ваш закрытый ключ SSH.
  • HOST: Хост, на котором выполняется действие, будет SSH для выполнения команды. Например, your.site.com.
  • USER: Пользователь, выполняющий команду SSH, будет аутентифицироваться как с закрытым ключом.

Пожалуйста, смотрите Репозиторий GitHub для получения полной информации.

3. Обнаружение утечки секретного ключа - gitleaks-action

Аудит Git фиксирует секреты с помощью gitleaks как действие GitHub. Если вы используете .env файлы, это действие уведомит вас, если вы когда-либо случайно опубликовали секреты.

использование

workflow "gitleaks my commits" {
  on = "push"
  resolves = ["gitleaks"]
}
action "gitleaks" {
  uses = "eshork/gitleaks-action@master"
}

Благодарим zricethezav / gitleaks за сложные биты.

4. Действие GitHub, запускающее ESLint

Это действие выполняет линтер ESLint для указанных файлов JavaScript без каких-либо предыдущих действий / шага сборки или Docker.

Для выполнения действия у вас должен быть запущен локально ESLint. Он будет использовать те же правила, что и вы на местном уровне. Подробнее в руководстве по началу работы с ESLint

использование

Добавьте любой из приведенных ниже примеров в свой файл рабочего процесса .github/main.workflow.

Вот пример, чтобы заставить его работать:

workflow "New workflow" {
  on = "push"
  resolves = ["ESLint"]
}
action "ESLint" {
  uses = "stefanoeb/eslint-action@master"
}

По умолчанию он запускает ESLint для всех файлов в проекте. Но вы также можете указать набор файлов на args, как в ESLint:

workflow "New workflow" {
  on = "push"
  resolves = ["ESLint"]
}
action "ESLint" {
  uses = "stefanoeb/eslint-action@master"
  args = "index.js src/**.js"
}

Если на предыдущем шаге не было установки необходимых модулей, это действие автоматически выполнит yarn install или npm install.

Заключение

Спасибо за чтение, надеюсь, вы узнали что-то новое. Если вы знаете какие-либо полезные действия GitHub, сообщите нам об этом. Оставайтесь любопытными и счастливым кодированием!