Gitlab CI с приложением Python flask, которое использует config.py? - PullRequest
1 голос
/ 25 мая 2020

Я использую config.py в своем проекте flask для обработки входа в базы данных, хранения секретных ключей и т. Д.

Пример файла config.py:

import urllib.parse
import os

class Config:
    SECRET_KEY = '123'

    @staticmethod
    def init_app(app):
        pass


class DevelopmentConfig(Config):
    DEV = True
    # Configure Database URI:
    params = urllib.parse.quote_plus("DRIVER={ODBC};" +
                                     "SERVER=azure.com;" +
                                     "DATABASE=db;" +
                                     "UID=po;" +
                                     "PWD=12345")
    SQLALCHEMY_DATABASE_URI = "mssql+pyodbc:///?odbc_connect=%s" % params

, и я использую его как таковой:

def create_app(config_name):
    app_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    template_path = os.path.join(app_path, 'server/templates/')
    static_path = os.path.join(app_path, 'server/static/')
    app = Flask(__name__, template_folder=template_path, static_folder=static_path)
    app.config.from_object(config[config_name])
    config[config_name].init_app(app)

    db.init_app(app)
    mail.init_app(app)
    login_manager.init_app(app)

    app.register_blueprint(bp_front)
    app.register_blueprint(bp_back)
    app.register_blueprint(auth_blueprint, url_prefix='/auth')
    return app

Теперь все работает, как ожидалось, но я хочу использовать Gitlab CI для тестирования, и поскольку у меня есть тестовая БД, которой я занимаюсь. Итак, как мне получить доступ к настройкам для подключения без фиксации config.py в репо?

Как \ Следует настроить flask для использования переменных среды, если тесты выполняются Gitlab CI?

...