Как использовать ci.yml для объявления переменных env, которые будут использоваться в python? - PullRequest
1 голос
/ 25 февраля 2020

-in gitlab-ci.yml

variables:
  SECRET_KEY: secret_key
  DB_NAME: somedb_name
  DB_USER: postgres
  DB_HOST: mdillon-postgis
  DB_PORT: 5432
  DB_PASSWORD: ''

-in django

DATABASES = {
    'default': {
        'ENGINE': 'django.contrib.gis.db.backends.postgis',
        'NAME': os.getenv('DB_NAME'),
        'USER': os.getenv('DB_USER'),
        'PASSWORD': os.getenv('DB_PASSWORD'),
        'HOST': os.getenv('DB_HOST'),
        'PORT': os.getenv('DB_PORT'),
    }
}

Django, похоже, не принимает переменные, объявленные в CI при запуске трубопровод. Как правильно объявить переменные env при тестировании?

1 Ответ

2 голосов
/ 25 февраля 2020

Любой, имеющий такое же замешательство. Вот шаги:

  1. Go в Настройки> CI / CD> Переменные. Добавьте переменные и значения:
  DB_NAME: your_db_name
  DB_USER: postgres
  DB_HOST: mdillon-postgis (or whatever service you are using)
  DB_PORT: 5432
  DB_PASSWORD: <leave it blank>
В gitlab-ci.yml
  POSTGRES_DB: $DB_NAME
  POSTGRES_USER: $DB_USER
  POSTGRES_PASSWORD: $DB_PASSWORD
  DATABASE_URL: postgres://postgres:@mdillon__postgis:5432/$DB_NAME
In django
DATABASES = {
    'default': {
        'ENGINE': 'django.contrib.gis.db.backends.postgis',
        'NAME': os.getenv('DB_NAME'),
        'USER': os.getenv('DB_USER'),
        'PASSWORD': os.getenv('DB_PASSWORD'),
        'HOST': os.getenv('DB_HOST'),
        'PORT': os.getenv('DB_PORT'),
    }
}
...