간단한 Django 프로젝트로 gitlab CI 설정

아랄 렉

몇 가지 단위 테스트가있는 매우 간단한 django 프로젝트가 있으며 새 커밋을 수행 할 때마다 해당 테스트를 실행하도록 Gitlab을 설정하고 싶습니다. 데이터베이스에 sqlite3를 사용하고 (나중에 변경할 계획이지만 지금은 간단하게 유지하고 싶습니다) 일부 설정 변수를 .env 파일에 저장했습니다.

다음은 .gitlab-ci.yml 파일입니다 (gitlab에서 제안한 기본 파일을 사용하고 필요하지 않다고 생각하는 파일을 제거했습니다).

image: python:latest

variables:
    SECRET_KEY: "this-is-my-secret-key"
    DEBUG: "True"
    ALLOWED_HOSTS: "['*']"
    DB_ENGINE: "django.db.backends.sqlite3"
    DB_NAME: "test_database.sqlite3"
    STATIC_URL: "/static/"

cache:
  paths:
    - ~/.cache/pip/

before_script:
  - python -V 
  - pip install -r requirements.txt

test:
  script:
    - cd backend
    - python3 manage.py makemigrations
    - python3 manage.py migrate
    - python3 manage.py test

하지만 커밋하면이 오류가 발생합니다.

$ python3 manage.py makemigrations
/usr/local/lib/python3.9/site-packages/environ/environ.py:628: UserWarning: /builds/romainros/ynoverflow/backend/ynoverflow/.env doesn't exist - if you're not configuring your environment separately, create one.
  warnings.warn(
Traceback (most recent call last):
  File "/builds/romainros/ynoverflow/backend/manage.py", line 22, in <module>
    main()
  File "/builds/romainros/ynoverflow/backend/manage.py", line 18, in main
    execute_from_command_line(sys.argv)
  File "/usr/local/lib/python3.9/site-packages/django/core/management/__init__.py", line 381, in execute_from_command_line
No changes detected
    utility.execute()
  File "/usr/local/lib/python3.9/site-packages/django/core/management/__init__.py", line 375, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/local/lib/python3.9/site-packages/django/core/management/base.py", line 336, in run_from_argv
    connections.close_all()
  File "/usr/local/lib/python3.9/site-packages/django/db/utils.py", line 224, in close_all
    connection.close()
  File "/usr/local/lib/python3.9/site-packages/django/db/backends/sqlite3/base.py", line 248, in close
    if not self.is_in_memory_db():
  File "/usr/local/lib/python3.9/site-packages/django/db/backends/sqlite3/base.py", line 367, in is_in_memory_db
    return self.creation.is_in_memory_db(self.settings_dict['NAME'])
  File "/usr/local/lib/python3.9/site-packages/django/db/backends/sqlite3/creation.py", line 12, in is_in_memory_db
    return database_name == ':memory:' or 'mode=memory' in database_name
TypeError: argument of type 'PosixPath' is not iterable

app.settings.ci파일을 추가 --settings app.settings.ci하고 테스트 명령 을 추가하려고했지만 이 오류가 발생했습니다.

django.core.exceptions.ImproperlyConfigured: Set the SECRET_KEY environment variable

어떤 생각?

편집하다

내 환경 변수에 django-environ을 사용합니다.

내 설정에서 가장 중요한 부분은 다음과 같습니다.

# settings.py

from datetime import timedelta

import environ
from pathlib import Path

env = environ.Env()
# reading .env file
environ.Env.read_env()



# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = env("SECRET_KEY")

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = env("DEBUG")

ALLOWED_HOSTS = env("ALLOWED_HOSTS")


# Application definition

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'rest_framework',
    'rest_framework_simplejwt.token_blacklist',
    'api'
]

# Database
# https://docs.djangoproject.com/en/3.1/ref/settings/#databases

DATABASES = {
    'default': {
        'ENGINE': env("DB_ENGINE"),
        'NAME': BASE_DIR / env("DB_NAME"),
    }
}

STATIC_URL = env("STATIC_URL")
아랄 렉

찾았어요 ! 다른 프로젝트에서 사용한 이전 requirements.txt 파일을 사용하고 있었고이 파일의 Django 버전은 2.2로 설정되었으며 어떤 이유로 BASE_DIR이 3.1 django 버전에서 변경되었습니다 (이 새 프로젝트에서 사용하고 있음). . 프로젝트를 시작한 후 요구 사항 파일을 만들었습니다.)

크레딧 : https://forum.djangoproject.com/t/django-tutorial-python-manage-py-startapp-polls-fails/2718/3

해결책 :

# requirements.txt

Django>=3.1
djangorestframework>=3.9.2
djangorestframework_simplejwt>=4.3.0
django-environ>=0.4.5

# .gitlab-ci.yml

image: python:latest

variables:
    SECRET_KEY: "this-is-my-secret-key"
    DEBUG: "True"
    ALLOWED_HOSTS: "['*']"
    DB_ENGINE: "django.db.backends.sqlite3"
    DB_NAME: "test_database.sqlite3"
    STATIC_URL: "/static/"

# This folder is cached between builds
# http://docs.gitlab.com/ee/ci/yaml/README.html#cache
cache:
  paths:
- ~/.cache/pip/

before_script:
  - pip install -r requirements.txt

test:
  script:
    - cd backend
    - python3 manage.py makemigrations
    - python3 manage.py migrate
    - python3 manage.py test

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Django 프로젝트 용 Gitlab에서 CI / CD 설정

분류에서Dev

심포니 프로젝트로 Gitlab-ci를 설정할 수 없습니다.

분류에서Dev

Django 프로젝트를 위해 Travis CI에서 postgresql 설정

분류에서Dev

Android 프로젝트 용 Gitlab CI 구성

분류에서Dev

gitlab의 기본 프로젝트 설정

분류에서Dev

Gitlab CI에서 Django 프로젝트에 대한 Selenium 테스트 실행 : get live_server_url에서 ERR_CONNECTION_REFUSED

분류에서Dev

중앙 위치에 저장된 동일한 gitlab-ci.yml을 호출하는 Gitlab 프로젝트

분류에서Dev

GitLab CI의 다중 프로젝트 파이프 라인에서 작업 간 연결을 실행하는 방법

분류에서Dev

동일한 작업 공간에서 Lib 프로젝트 및 단위 테스트 프로젝트 설정

분류에서Dev

간단한 테스트 프로젝트 설정 문제-Exceljs 및 Browserify

분류에서Dev

분기 된 GitLab 프로젝트에 CI / CD 없음

분류에서Dev

gitlab-ci에서 동적으로 전역 변수 설정

분류에서Dev

gitlab 및 원격 서버로 CI 설정 시도

분류에서Dev

Gulp로 빌드 한 후 Gitlab CI 아티팩트에서 특정 폴더 생성

분류에서Dev

Gitlab CI를 사용한 정적 사이트 배포 문제

분류에서Dev

Gitlab-CI에서 SilverStripe 모듈 테스트를위한 환경을 설정하는 방법

분류에서Dev

반응 프로젝트에서 상태 제한 시간 설정

분류에서Dev

Django 프로젝트의 데이터베이스 설정 정보

분류에서Dev

자바 스크립트 프로젝트 용 jshint 및 travis-ci 설정

분류에서Dev

프로젝트의 모든 자동 필드에 대한 django 재설정 시퀀스

분류에서Dev

Travis CI 설정 실패- "프로젝트 경로를 다음으로 설정할 수 없음 : xxx"

분류에서Dev

GitLab CI : Vue.js 프로젝트에서 npm 명령을 찾을 수 없음

분류에서Dev

Gitlab CI에 고스트 스크립트를 포함하는 가장 간단한 방법

분류에서Dev

ASP.NET Core Devextreme 프로젝트 용 VSTS CI (지속적 통합) 설정

분류에서Dev

Apache 서버에서 Django 프로젝트 설정

분류에서Dev

Django 프로젝트 설정 가져 오기

분류에서Dev

Django 프로젝트의 모든 설정을 빠르게 나열

분류에서Dev

Django 프로젝트의 모든 설정을 빠르게 나열

분류에서Dev

Django-프로젝트 전체 설정 저장 및 관리

Related 관련 기사

  1. 1

    Django 프로젝트 용 Gitlab에서 CI / CD 설정

  2. 2

    심포니 프로젝트로 Gitlab-ci를 설정할 수 없습니다.

  3. 3

    Django 프로젝트를 위해 Travis CI에서 postgresql 설정

  4. 4

    Android 프로젝트 용 Gitlab CI 구성

  5. 5

    gitlab의 기본 프로젝트 설정

  6. 6

    Gitlab CI에서 Django 프로젝트에 대한 Selenium 테스트 실행 : get live_server_url에서 ERR_CONNECTION_REFUSED

  7. 7

    중앙 위치에 저장된 동일한 gitlab-ci.yml을 호출하는 Gitlab 프로젝트

  8. 8

    GitLab CI의 다중 프로젝트 파이프 라인에서 작업 간 연결을 실행하는 방법

  9. 9

    동일한 작업 공간에서 Lib 프로젝트 및 단위 테스트 프로젝트 설정

  10. 10

    간단한 테스트 프로젝트 설정 문제-Exceljs 및 Browserify

  11. 11

    분기 된 GitLab 프로젝트에 CI / CD 없음

  12. 12

    gitlab-ci에서 동적으로 전역 변수 설정

  13. 13

    gitlab 및 원격 서버로 CI 설정 시도

  14. 14

    Gulp로 빌드 한 후 Gitlab CI 아티팩트에서 특정 폴더 생성

  15. 15

    Gitlab CI를 사용한 정적 사이트 배포 문제

  16. 16

    Gitlab-CI에서 SilverStripe 모듈 테스트를위한 환경을 설정하는 방법

  17. 17

    반응 프로젝트에서 상태 제한 시간 설정

  18. 18

    Django 프로젝트의 데이터베이스 설정 정보

  19. 19

    자바 스크립트 프로젝트 용 jshint 및 travis-ci 설정

  20. 20

    프로젝트의 모든 자동 필드에 대한 django 재설정 시퀀스

  21. 21

    Travis CI 설정 실패- "프로젝트 경로를 다음으로 설정할 수 없음 : xxx"

  22. 22

    GitLab CI : Vue.js 프로젝트에서 npm 명령을 찾을 수 없음

  23. 23

    Gitlab CI에 고스트 스크립트를 포함하는 가장 간단한 방법

  24. 24

    ASP.NET Core Devextreme 프로젝트 용 VSTS CI (지속적 통합) 설정

  25. 25

    Apache 서버에서 Django 프로젝트 설정

  26. 26

    Django 프로젝트 설정 가져 오기

  27. 27

    Django 프로젝트의 모든 설정을 빠르게 나열

  28. 28

    Django 프로젝트의 모든 설정을 빠르게 나열

  29. 29

    Django-프로젝트 전체 설정 저장 및 관리

뜨겁다태그

보관