Я пытаюсь настроить сквозные тесты Nightwatch.js в Google Cloud Build с помощью прокси-соединения Sauce Labs с соусом.
Я уже видел это на TravisCI с соусом-подключите плагин и подумайте, что это может быть легко скопировать, но после дня попыток я никуда не попал.
Что я пробовал:
- простые шаги сборки, чтобы начатьsauce-connect, http-сервер и
npm run e2e
- docker-compose с соусом-connect и http-сервером,
npm run e2e
в качестве этапа сборки
compose:
version: '3'
services:
sauce_connect:
container_name: sauce_connect
image: gcr.io/$PROJECT_ID/sauce-connect
restart: always
expose:
- 4445
ports:
- 4445
command: '-u user -k sauce_access_code -i cloud_testing'
server:
container_name: server
image: gcr.io/$PROJECT_ID/web
restart: always
expose:
- 8080
ports:
- 8080
cloudbuild:
steps:
- name: gcr.io/cloud-builders/gcloud
id: encrypt
waitFor: ['-']
args:
- kms
- decrypt
- --ciphertext-file=${_ENV}.env.enc
- --plaintext-file=.env
- --location=global
- --keyring=xyz
- --key=build
- name: 'gcr.io/$PROJECT_ID/docker-compose'
args: ['-f', 'e2e-compose.yaml', 'up']
env:
- 'PROJECT_ID=$PROJECT_ID'
- name: 'gcr.io/$PROJECT_ID/web'
args: ['npm', 'run', 'e2e']
timeout: 3200s
То, что я еще не пробовал
- , выполните все три шага через
docker run
и подключите их к докерской сети cloudbuild
Я не уверен, как именно подключить все три контейнера к сети и решит ли это мою проблему.
Есть идеи или предложения?Это было довольно легко настроить на TravisCI, но я бы хотел запустить его на Cloud Build вместо того, чтобы провести отдельную PR-проверку для тестов e2e.