/bin/sh: git: не найдено — GitLab CI с Nx Workspaces
Я использовал рабочие пространства nx для своего монорепозитория, который полагается на утилиту, затронутую nx, чтобы узнать разницу между двумя состояниями. Я хочу инициировать промежуточное развертывание, когда код помещается в эту ветку, поэтому я использую команду ниже
yarn nx affected:build --base=origin/$CI_COMMIT_BRANCH~1 --head=$CI_COMMIT_BRANCH --prod
запуск этого локально работает нормально, но запуск этого в ci приводит к ошибке ниже
$ yarn nx affected:build --base=origin/$CI_COMMIT_BRANCH~1 --head=$CI_COMMIT_BRANCH --prod
yarn run v1.22.15
$ /builds/vesatogo/weave/node_modules/.bin/nx affected:build '--base=origin/staging~1' --head=staging --prod
/bin/sh: git: not found
/bin/sh: git: not found
Прикрепляю весь мой ci-файл для справки
image: node:16-alpine
stages:
# - install
- build
# - deploy
# - test
.intall-node-yarn:
before_script:
- apk add --update nodejs npm
- npm i -g yarn
cache:
key:
files:
- yarn.lock
paths:
- node_modules
- .yarn
# install-dependencies:
# stage: install
# script:
# - yarn install --frozen-lockfile
# rules:
# - if: "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME =~ /^development|staging|production/"
# changes:
# - yarn.lock
# Build production version
build:
stage: build
script:
- yarn nx affected:build --base=origin/$CI_COMMIT_BRANCH~1 --head=$CI_COMMIT_BRANCH --prod
environment:
name: $CI_COMMIT_BRANCH
variables:
NEXT_PUBLIC_KITE_ENV: $NEXT_PUBLIC_KITE_ENV
artifacts:
paths:
- "dist"
expire_in: 1 day
rules:
- if: "$CI_COMMIT_BRANCH =~ /^staging|production/"
# Build and push docker images
# push:
# stage: deploy
# image: docker:20.10.12
# services:
# - docker:20.10.12-dind
# variables:
# DOCTL_TOKEN: $DOCTL_TOKEN
# extends:
# - .intall-node-yarn
# script:
# - yarn nx run kite:dockerize
# rules:
# - if: "$CI_COMMIT_BRANCH =~ /^staging|production/"
# # Deploy the application to kubernetes
# deploy:
# stage: deploy
# image: dtzar/helm-kubectl
# needs:
# - push
# extends:
# - .intall-node-yarn
# script:
# - yarn nx run kite:deploy
# rules:
# - if: "$CI_COMMIT_BRANCH =~ /^staging|production/"
1 ответ
используйте before_script в файле gitlab-ci для установки команды git
before_script:
- apk add --update git
- apk add --update nodejs npm
- npm i -g yarn