diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 50dce68f1bc30d2a4dc3d806342eb7a0a3b8627c..cf0f66d5b15113c1e86c9c9a1b55454b22096a07 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,84 +1,5 @@ -# This example is for testing Django with MySQL. -# -# The test CI/CD variables MYSQL_DB, MYSQL_USER and MYSQL_PASS can be set in the project settings at: -# Settings --> CI/CD --> Variables -# -# The Django settings in settings.py, used in tests, might look similar to: -# -# DATABASES = { -# 'default': { -# 'ENGINE': 'django.db.backends.mysql', -# 'NAME': os.environ.get('MYSQL_DATABASE'), -# 'USER': os.environ.get('MYSQL_USER'), -# 'PASSWORD': os.environ.get('MYSQL_PASSWORD'), -# 'HOST': 'mysql', -# 'PORT': '3306', -# 'CONN_MAX_AGE':60, -# }, -# } -# -# It is possible to use '--settings' to specify a custom settings file on the command line below or use an environment -# variable to trigger an include on the bottom of your settings.py: -# if os.environ.get('DJANGO_CONFIG')=='test': -# from .settings_test import * -# -# It is also possible to hardcode the database name and credentials in the settings.py file and in the .gitlab-ci.yml file. -# -# The mysql service needs some variables too. See https://hub.docker.com/_/mysql for possible mysql env variables -# Note that when using a service in GitLab CI/CD that needs environment variables to run, only variables defined in -# .gitlab-ci.yml are passed to the service and variables defined in the GitLab UI are not. -# https://gitlab.com/gitlab-org/gitlab/-/issues/30178 - -variables: - # DJANGO_CONFIG: "test" - MYSQL_DATABASE: $MYSQL_DB - MYSQL_ROOT_PASSWORD: $MYSQL_PASS - MYSQL_USER: $MYSQL_USER - MYSQL_PASSWORD: $MYSQL_PASS - -default: - image: ubuntu:20.04 - # - # Pick zero or more services to be used on all builds. - # Only needed when using a docker container to run your tests in. - # Check out: https://docs.gitlab.com/ee/ci/services/index.html - services: - - mysql:8.0 - # - # This folder is cached between builds - # http://docs.gitlab.com/ee/ci/yaml/README.html#cache - cache: - paths: - - ~/.cache/pip/ - before_script: - - apt -y update - - apt -y install apt-utils - # - apt -y install net-tools python3.8 python3-pip mysql-client libmysqlclient-dev - - apt -y upgrade - - -migrations: - stage: build - script: - - apt -y install python3.8 python3-pip - - pip3 install -r requirements.txt - - python3 manage.py makemigrations - # - python3 manage.py makemigrations myapp - - python3 manage.py migrate - - python3 manage.py check - - -django-tests: - stage: test - script: - # The MYSQL user only gets permissions for MYSQL_DB, so Django can't create a test database. - # - echo "GRANT ALL on *.* to '${MYSQL_USER}';"| mysql -u root --password="${MYSQL_ROOT_PASSWORD}" -h mysql - # line diatas bikin test failed - # use python3 explicitly. see https://wiki.ubuntu.com/Python/3 - - apt -y install python3.8 python3-pip - - pip3 install -r requirements.txt - - python3 manage.py test - +stages: + - deploy deploy-railway: stage: deploy