如何使用ci.yml声明要在python中使用的环境变量?

如何使用ci.yml声明要在python中使用的环境变量?,python,django,continuous-integration,gitlab-ci,Python,Django,Continuous Integration,Gitlab Ci,-在gitlab-ci.yml中 variables: SECRET_KEY: secret_key DB_NAME: somedb_name DB_USER: postgres DB_HOST: mdillon-postgis DB_PORT: 5432 DB_PASSWORD: '' -在django DATABASES = { 'default': { 'ENGINE': 'django.contrib.gis.db.backends.po

-在gitlab-ci.yml中

variables:
  SECRET_KEY: secret_key
  DB_NAME: somedb_name
  DB_USER: postgres
  DB_HOST: mdillon-postgis
  DB_PORT: 5432
  DB_PASSWORD: ''
-在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'),
    }
}
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上声明的变量。如何在测试时正确声明环境变量?

任何人都有同样的困惑。以下是步骤:

  • 转到设置>CI/CD>变量。添加变量和值:
  • 在django
  •   POSTGRES_DB: $DB_NAME
      POSTGRES_USER: $DB_USER
      POSTGRES_PASSWORD: $DB_PASSWORD
      DATABASE_URL: postgres://postgres:@mdillon__postgis:5432/$DB_NAME
    
    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'),
        }
    }