Я использую Google Cloud Build для запуска CI для моей рабочей области Nx. Вот файл cloudbuild.yaml:
steps:
- name: 'gcr.io/cloud-builders/docker'
id: Test_Affected_Projects
entrypoint: 'sh'
args: [
'-c',
'docker build --build-arg NPM_TOKEN=$$NPM_TOKEN --file ./test/Dockerfile.test-runner -t mha-test-runner .']
secretEnv: ['NPM_TOKEN']
# Remove the docker image
secrets:
- kmsKeyName: /path/to/key
secretEnv:
NPM_TOKEN: some_key_value
(сейчас есть два шага, но я удалил второй для краткости. Второй шаг просто удаляет созданное изображение docker.)
Теперь команда внутри образа Docker запускает все тесты для рабочей области Nx. Дело в том, что у Nx есть отличная команда, в которой будут тестироваться только затронутые библиотеки. Но для запуска команды должна быть доступна история проекта git.
Я пытался получить историю git в контексте сборки облака, но мне не удалось заставить его работать. Это шаг, который я добавил, чтобы попытаться заставить все работать:
steps:
- name: 'gcr.io/cloud-builders/git'
args: ['fetch', '--unshallow']
- name: 'gcr.io/cloud-builders/docker'
id: Test_Affected_Projects
entrypoint: 'sh'
args: [
'-c',
'docker build --build-arg NPM_TOKEN=$$NPM_TOKEN --file ./test/Dockerfile.test-runner -t mha-test-runner .']
secretEnv: ['NPM_TOKEN']
# Remove the docker image
secrets:
- kmsKeyName: /path/to/key
secretEnv:
NPM_TOKEN: some_key_value
Эта новая первая команда, которая должна получить историю git, не работает. В сообщении об ошибке говорится, что это не репозиторий git, поэтому команда не работает.
Мой вопрос: как мне получить историю git в контексте сборки облака, чтобы использовать ее с разными команды в процессе сборки / тестирования?