Merge branch 'dev' into 'master'

Dev

See merge request !5
master
Andrey 8 years ago
commit 8365c1bd5b
  1. 49
      .gitlab-ci.yml
  2. 20
      Envoy.blade.php
  3. 2
      README.md
  4. 4
      access/urls.py
  5. 8
      access/views.py
  6. 7
      lms/wsgi.py

@ -0,0 +1,49 @@
variables:
SERVER_URL: "go.skillbox.ru"
DOMAIN: "$CI_BUILD_REF_SLUG.$SERVER_URL"
GIT_DEPTH: "1"
types:
- deploy_branch
- deploy_production
deploy_branch:
stage: deploy_branch
script:
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
- eval $(ssh-agent -s)
- ssh-add <(echo "$SSH_PRIVATE_KEY")
- mkdir -p ~/.ssh
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
- ~/.composer/vendor/bin/envoy run deploy --cleanup --branch="$CI_BUILD_REF_SLUG"
environment:
name: production
url: https://go.skillbox.ru
variables:
GIT_DEPTH: "1"
# when: manual
only:
- dev
- autodeploy
deploy_production:
stage: deploy_production
script:
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
- eval $(ssh-agent -s)
- ssh-add <(echo "$SSH_PRIVATE_KEY")
- mkdir -p ~/.ssh
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
- ~/.composer/vendor/bin/envoy run deploy --cleanup --branch="$CI_BUILD_REF_SLUG"
environment:
name: production
url: https://go.skillbox.ru
variables:
GIT_DEPTH: "1"
when: manual
only:
- master

@ -1,15 +1,16 @@
@servers(['localhost' => 'deployer@192.168.0.13'])
@setup
$repository = 'ssh://git@g.skillbox.ru:22004/kor_a_m/lms-front.git';
$repository = 'ssh://git@g.skillbox.ru:22004/kor_a_m/skill-back.git';
$releases_dir = '/www/site/back_go.skillbox.ru/releases';
$app_dir = '/www/site/back_go.skillbox.ru/';
$app_dir = '/www/site/back_go.skillbox.ru';
$release = date('YmdHis');
$new_release_dir = $releases_dir .'/'. $release . '_' . $branch;
@endsetup
@story('deploy', ['on' => 'localhost'])
clone_repository
run_tests
update_symlinks
deployment_option_cleanup
@endstory
@ -24,10 +25,21 @@ echo '{{ $new_release_dir }}'
@endif
@endtask
@task('run_tests', ['on' => 'localhost'])
echo '>> Запускаем тесты'
@if ($branch)
cd {{ $new_release_dir }}
source /www/servers/python-server/bin/activate && python manage.py test
@endif
@endtask
@task('update_symlinks', ['on' => 'localhost'])
@if ($branch)
echo '>> Создаем симлинк на папку текущего релиза'
ln -nfs {{ $new_release_dir }} {{ $app_dir }}/current_{{ $branch }}
ln -nfs {{ $new_release_dir }}/lms/wsgi.py {{ $app_dir }}/configs/{{ $branch }}/wsgi.py
echo '>> Создаем симлинк на папку текущего релиза'
ln -nfs {{ $new_release_dir }} {{ $app_dir }}/current_{{ $branch }}
echo '>> restart Supervisor'
supervisorctl restart {{ $branch }}:
@endif
@endtask

@ -11,4 +11,4 @@
4 cd skill-back
5 pip install -r requirements.txt
6 python manage.py test
7 python manage.py runserver

@ -4,6 +4,8 @@ import progress.views
from access import views
urlpatterns = [
url(r'progress_detail/(?P<token>[0-9A-Fa-f-]+)/$', progress.views.CourseProgressUserView.as_view()),
url(r'progress_dynamic/(?P<token>[0-9A-Fa-f-]+)/$', progress.views.CourseProgressDynamicView.as_view()),
url(r'teachers/$', views.TeacherListView.as_view()),
url(r'detail/(?P<out_key>[0-9A-Fa-f-]+)/$', views.DetailUserView.as_view()),
url(r'detail/$', views.DetailUserView.as_view()),
@ -16,6 +18,4 @@ urlpatterns = [
url(r'logout/$', views.LogoutView.as_view()),
url(r'reset/$', views.ResetPasswordView.as_view()),
url(r'progress_detail/upload/(?P<token>[0-9A-Fa-f-]+)/$', progress.views.UploadCourseProgressUserView.as_view()),
url(r'progress_detail/(?P<token>[0-9A-Fa-f-]+)/$', progress.views.CourseProgressUserView.as_view()),
url(r'progress_dynamic/(?P<token>[0-9A-Fa-f-]+)/$', progress.views.CourseProgressDynamicView.as_view()),
]

@ -158,8 +158,8 @@ class DetailUserView(APIView):
return Response(serialized_user, status=200)
@staticmethod
def get(request, pk=None):
if pk is None:
def get(request, out_key=None):
if out_key is None:
if request.user.is_authenticated():
serialized_user = UserSelfSerializer(request.user).data
serialized_user['is_i'] = True
@ -167,10 +167,10 @@ class DetailUserView(APIView):
return Response('anonymous', status=200)
if request.user.is_authenticated() and request.user.is_superuser \
or request.user.is_staff or request.user.out_key == pk:
or request.user.is_staff or request.user.out_key == out_key:
try:
user = get_user_model().objects.get(out_key=pk)
user = get_user_model().objects.get(out_key=out_key)
except get_user_model().DoesNotExist:
return Response("User doesn't exist", status=404)

@ -1,7 +0,0 @@
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings")
application = get_wsgi_application()
Loading…
Cancel
Save