Консоль в Google Cloud Build? - PullRequest
       62

Консоль в Google Cloud Build?

0 голосов
/ 14 апреля 2019

Я использую Google Cloud build для запуска тестов на CI / CD. Я столкнулся с ошибкой в ​​моей сборке и хотел бы консоль войти в работающий контейнер для проверки окружающей среды.

Ошибка, которую я получаю от запуска "ng test" в угловом приложении. Карма дает мне ошибку:

Шаг № 1: 14 04 2019 12: 00: 01.869: ОШИБКА [пусковая установка]: Нет двоичного файла для Браузер Chrome на вашей платформе.
Шаг № 1: пожалуйста, установите "CHROME_BIN" env переменная.

Итак, я хочу иметь возможность консоли в среде, чтобы я мог визуально проверить и определить, где может быть путь к Chrome bin.

На данный момент в документах здесь указано, что я могу только просматривать историю выходных данных.

https://cloud.google.com/cloud-build/docs/view-build-results

Можно ли консоль войти в Google Cloud build? Если да, как я могу войти в консоль Google Cloud build?

Спасибо


Обновление:

Спасибо за ответ ffd03e.

Вот файл yaml, который я сейчас использую после добавления вашей точки входа в bash вместе с выводом в облако. Я буду просматривать ссылки, которые вы опубликовали, и сделаю еще одно обновление. (Поскольку chrome ENV пуст, я попытался настроить его поиск с помощью ls) Хотя это единственный способ отладки с использованием файла YAML? Я надеюсь подключиться к облачной оболочке bash в облаке, чтобы мне не приходилось вносить изменения в мой репозиторий только для того, чтобы что-то регистрировать.

Конфигурация и вывод перечислены ниже:

steps:
# Install
- name: 'gcr.io/cloud-builders/npm'
  args: ['install']
# bash -c | echo $CHROME_ENV - and checking chrome paths
- id: 'print env vars'
  name: 'gcr.io/$PROJECT_ID/ng:latest'
  entrypoint: 'bash'
  args:
  - '-c'
  - |
    echo 'getting env'
    env
    echo 'NODE_VERSION: ' $$NODE_VERSION
    echo 'CHROME_ENV: '  $$CHROME_ENV
# Test - running this in root also runs test for libraries
- name: 'gcr.io/cloud-builders/npm'
  args: ['run', 'test']
# Build
- name: 'gcr.io/cloud-builders/npm'
  args: ['run', 'build']
# Deploy
- name: 'gcr.io/$PROJECT_ID/firebase'
  args: ['deploy']

Starting Step #1 - "print env vars"
Step #1 - "print env vars": Pulling image: gcr.io/library-master/ng:latest
Step #1 - "print env vars": latest: Pulling from library-master/ng
Step #1 - "print env vars": 4b105072aa89: Already exists
Step #1 - "print env vars": b775667b1fd0: Already exists
Step #1 - "print env vars": 0fe156bcb4b1: Already exists
Step #1 - "print env vars": fb9906355a0f: Already exists
Step #1 - "print env vars": 880a3b83482f: Already exists
Step #1 - "print env vars": 228e101c8671: Already exists
Step #1 - "print env vars": f77ff8405034: Already exists
Step #1 - "print env vars": cd091f7b9743: Already exists
Step #1 - "print env vars": 60af6f0efde7: Pulling fs layer
Step #1 - "print env vars": 60af6f0efde7: Verifying Checksum
Step #1 - "print env vars": 60af6f0efde7: Download complete
Step #1 - "print env vars": 60af6f0efde7: Pull complete
Step #1 - "print env vars": Digest: sha256:2758958b0130229397599ce976ab163e8959ee2d1c4f13143d6c2233d792e79e
Step #1 - "print env vars": Status: Downloaded newer image for gcr.io/library-master/ng:latest
Step #1 - "print env vars": getting env
Step #1 - "print env vars": NODE_VERSION=8.12.0
Step #1 - "print env vars": HOSTNAME=c2dc51ef6be7
Step #1 - "print env vars": PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Step #1 - "print env vars": PWD=/workspace
Step #1 - "print env vars": SHLVL=1
Step #1 - "print env vars": HOME=/builder/home
Step #1 - "print env vars": YARN_VERSION=1.9.4
Step #1 - "print env vars": BUILDER_OUTPUT=/builder/outputs
Step #1 - "print env vars": _=/usr/bin/env
Step #1 - "print env vars": NODE_VERSION: 8.12.0
Step #1 - "print env vars": CHROME_ENV: 
Finished Step #1 - "print env vars"
Starting Step #2
Step #2: Already have image (with digest): gcr.io/cloud-builders/npm
Step #2: 
Step #2: > library-master@0.0.0 test /workspace
Step #2: > ng test
Step #2: 
Step #2: 17 04 2019 13:32:21.481:WARN [karma]: No captured browser, open http://localhost:9876/
Step #2: 17 04 2019 13:32:21.486:INFO [karma-server]: Karma v3.1.4 server started at http://0.0.0.0:9876/
Step #2: 17 04 2019 13:32:21.487:INFO [launcher]: Launching browsers Chrome with concurrency unlimited
Step #2: 17 04 2019 13:32:21.497:INFO [launcher]: Starting browser Chrome
Step #2: 17 04 2019 13:32:21.498:ERROR [launcher]: No binary for Chrome browser on your platform.
Step #2: Please, set "CHROME_BIN" env variable.
Step #2: 17 04 2019 13:32:27.258:WARN [karma]: No captured browser, open http://localhost:9876/

----------- Другое Попробуйте использовать ls , чтобы найти Chrome ---------

# Using 'ls' to look for chrome..
Step #1 - "print env vars": ls /usr/bin/google-chrome
Step #1 - "print env vars": ls: cannot access /usr/bin/google-chrome: No such file or directory
Step #1 - "print env vars": ls /usr/bin/chromium-browser
Step #1 - "print env vars": ls: cannot access /usr/bin/chromium-browser: No such file or directory

1 Ответ

0 голосов
/ 16 апреля 2019

Вы запускаете ng test как шаг сборки или в Dockerfile? Было бы полезно увидеть конфигурацию вашей облачной сборки.

Вот пример cloudbuild.yaml, который печатает переменные окружения. Он также воспроизводит ошибку, если используется с ng new my-app, и использует ng Community Cloud Builder .

# npm install
- id: 'install dependencies'
  name: 'gcr.io/cloud-builders/npm'
  args: ['install']

# bash -c | echo $CHROME_ENV
- id: 'print env vars'
  name: 'gcr.io/$PROJECT_ID/ng:latest'
  entrypoint: 'bash'
  args:
  - '-c'
  - |
    echo 'getting env'
    env
    echo 'NODE_VERSION: ' $$NODE_VERSION
    echo 'CHROME_ENV: '  $$CHROME_ENV

# ng test
- id: 'run unit tests'
  name: 'gcr.io/$PROJECT_ID/ng:latest'
  args: ['test']

Ресурсы: Замена значений переменных , Освоение синтаксиса конфигурации сборки облака Google

Похоже, что в ваших тестах используется хром. При запуске из Cloud Build тесты следует запускать с использованием chrome без заголовка или фантомов. На этапе сборки, который вы запускаете ng test, возможно, не установлен безголовый Chrome.

Соответствующие ссылки

...