У Gitlab-CI runner возникают проблемы с поиском моего venv и его активацией - PullRequest
1 голос
/ 03 августа 2020

Я впервые пытаюсь настроить CI / CD. Я следил за этим видео на YouTube: https://www.youtube.com/watch?v=Jav4vbUrqII, и я настроил свое приложение django, используя этот учебник по digitalocean: https://www.digitalocean.com/community/tutorials/how-to-set-up-django-with-postgres-nginx-and-gunicorn-on-ubuntu-16-04.

Когда я вхожу в систему с помощью шпатлевки на промежуточном сервере и запуска исходной команды, он может найти и активировать виртуальную среду без проблем. Но когда он запускается со сценарием ниже, он сообщает мне, что такого файла не существует.

У меня была идея посмотреть, из какого рабочего каталога запускается скрипт:

$ echo $PWD
/builds/my username/dir

Когда я нахожусь в home user Я не могу найти / builds / my username / dir:

cron.log  cron.sh  dir1  data  file.sql

Вопрос: Значит, мне не удается найти и активировать мою среду, потому что она находится в странном каталоге?

С помощью приведенного ниже сценария я хочу достичь:

  1. получить код в ветке dev
  2. запустить collectstatic / migrate
  3. перезапустить gunicorn, чтобы изменения вступают в силу
  4. тест (но в этом случае выведите строку - мне придется узнать, как проводить тесты позже).

Gitlab-ci.yml:

stages:
    - build
    - test

staging:
  build:
      stage: build 
      script:
          - echo "Building"
          - echo $PWD
          - source dir1/env/bin/activate
          - cd dir1/my project name/
          - git fetch origin dev
          - git pull origin dev
          - python manage.py collectstatic
          - export DJANGO_SETTINGS_MODULE=settings.production
          - python manage.py migrate
          - sudo systemctl restart gunicorn

test:
    stage: test 
    script:
        - echo "Testing"

Изменить: если вам интересно, почему я запускаю команду экспорта, это необходимо, потому что без нее я получаю следующую ошибку всякий раз, когда пытаюсь выполнить миграцию:

FATAL:  password authentication failed for user "postgres"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...