/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
Другие вопросы по тегам