Рубрики
Uncategorized

Запуск NX затронутые команды в действиях GitHub

Как запустить NX, затронутые командами в рабочем процессе действия GitHub. Tagged с NX, DevOps, Monorepo, WebDev.

Действия GitHub является мощной функцией, которая позволяет разработчикам автоматизировать свои рабочие процессы CI/CD непосредственно в GitHub. Довольно легко встать и идти с Официальный рабочий процесс Node.js Шаблон, однако, Nx может быть немного сложно работать.

У NX есть мощный набор команд, которые позволяют вам Восстановление и повторный тест То, что влияет на изменение, но из -за того, как действия GitHub проверяют ветвь для выполнения рабочего процесса, они не будут работать должным образом со стандартным рабочим процессом Node.js.

Первое, что можно изменить от стандартного рабочего процесса node.js, — это параметры, передаваемые в Оформление действие:

- uses: actions/checkout@v2
  with:
    fetch-depth: 0

ref Команда явно устанавливает коммит для проверки как последнюю коммиту от запроса о привлечении, который был инициирован.

Когда глубинный устанавливается на 0, тогда вся история коммитов получена.

Далее нам нужно принести Moster Master, чтобы у нас была база для запуска затронутых команд против:

- run: git fetch --no-tags --prune --depth=5 origin master

Наконец, вы можете начать запускать затронутые команды:

# npm

npm run affected:build -- --base=origin/master

# Yarn

yarn affected:build --base=origin/master

Вот полный пример, заимствованный из моего nxtend Репо:

name: Nx Affected CI

on:
  push:
    branches: [master]
  pull_request:
    branches: [master]

jobs:
  build:
    runs-on: ubuntu-latest

    strategy:
      matrix:
        node-version: [12.x]

    steps:
      - uses: actions/checkout@v2
        with:
          fetch-depth: 0
      - name: Use Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v1
        with:
          node-version: ${{ matrix.node-version }}
      - run: git fetch --no-tags --prune --depth=5 origin master
      - run: yarn install --frozen-lockfile
      - run: yarn affected:build --base=origin/master
      - run: yarn affected:lint --base=origin/master
      - run: yarn affected:test --base=origin/master
      - run: yarn affected:e2e --base=origin/master

Чтобы использовать это, создайте файл NX-затронутый.yml в каталоге .github/Workflows в вашем репозитории.

Действия GitHub являются мощными и легко добавить в ваш трубопровод CI/CD. По мере того, как ваш код масштабирует с NX, то же самое должно.

Особая благодарность Плайсптер на GitHub за их предложения, которые помогли заставить это работать.

использованная литература

Действия GitHub Начиная с шаблона рабочего процесса Node.js NX — восстановление и повторное тестирование на то, что затронуто @nxtend Плайсптер на GitHub

Оригинал: «https://dev.to/devinshoemaker/running-nx-affected-commands-in-github-actions-56f6»