Действия 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»