У меня проблемы с запуском интеграционных тестов в Google Cloud Build.
Модульные тесты работают нормально, но интеграционные тесты, выполняющие запросы к внешнему API (с использованием Axios), отображают эту ошибку в Cloud Build:connect ECONNREFUSED 127.0.0.1:80.
Это приложение React, созданное с помощью приложения Create React.Вот cloudbuild.json:
{
"steps": [
{
"name": "gcr.io/cloud-builders/npm",
"entrypoint": "npm",
"args": [
"install"
],
},
{
"name": "gcr.io/cloud-builders/npm",
"entrypoint": "npm",
"args": [
"run", "build"
],
},
{
"name": "gcr.io/cloud-builders/npm",
"entrypoint": "npm",
"args": [
"test"
],
"env": [
"CI=true",
],
}
]
}
Вот пример ошибки:
Step #1: src/reducers/readings › should update state appropriately when starting a fetch readings request
Step #1:
Step #1: connect ECONNREFUSED 127.0.0.1:80
Любая помощь будет оценена!
-
Следуйтеup:
Я наконец-то отыскал проблему с этим.URL внешнего API был определен в файле .env.Поскольку Cloudbuild не имел доступа к этим переменным, по умолчанию Axios вызывает 127.0.0.1 (localhost), что не удалось.
Проблема была исправлена путем шифрования файла env, сохранения его в качестве ключа Cloud KMS ипредоставив облачному доступу к нему доступ.
# Decrypt env variables
- name: gcr.io/cloud-builders/gcloud
args:
- kms
- decrypt
- --ciphertext-file=.env.enc
- --plaintext-file=.env
- --location=global
- --keyring=[KEYRING]
- --key=[KEY]
Спасибо за указатели @ ffd03e.