Используйте git команды с Google Cloud Builder - PullRequest
0 голосов
/ 07 марта 2020

Я пытаюсь использовать Google Cloud Build с GitHub для создания конвейера CI / CD. Однако я борюсь с GCB ...

Ниже очень простой конвейер:

  1. run npm install -> он работает
  2. run npm test -> это работает
  3. запустить npm run css:ALL (rm некоторые файлы + сделать что-то минимизирующее) -> похоже, работает
  4. запустить некоторые git команды -> не работает

Ошибки:

Step #3: fatal: not a git repository (or any parent up to mount point /)
Step #3: Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).

cloudbuild.yaml

steps:
  - name: 'gcr.io/cloud-builders/npm'
    args: ['install']
  # run test
  - name: 'gcr.io/cloud-builders/npm'
    args: ['test']
  # build css files
  - name: 'gcr.io/cloud-builders/npm'
    args: ['run', 'css:ALL']
  # git stuff
  - name: 'gcr.io/cloud-builders/git'
    args: ['add', '-A']
  - name: 'gcr.io/cloud-builders/git'
    args: ['commit', '-m', '"some message"']

У вас есть какие-либо подсказки?

Моя цель просто git add собрать все вещи и push вернуть их обратно в мой branch. Спасибо

1 Ответ

3 голосов
/ 07 марта 2020

Cloud Build - отличный продукт! С некоторыми скучными вещами ... папка. git не копируется с исходным кодом.

Если вы запускаете облачную сборку вручную, просто добавьте пустой файл .gcloudignore в root вашего репозиторий. Благодаря этому каталог .git не будет игнорироваться и загружаться вместе с вашим кодом.

Но этот прием не работает с триггером. Для этого я использую этот шаг

steps:
- name: 'gcr.io/cloud-builders/git'
  entrypoint: /bin/bash
  args:
    - -c
    - |
        # Cloud Build doesn't recover the .git file. Thus checkout the repo for this
        git clone --branch $BRANCH_NAME https://github.com/path/to/yourRepo.git /tmp/repo ;
        # Copy only the .git file
        mv /tmp/repo/.git .

Затем вы можете использовать git, с действующим и существующим .git dir

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...