diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 000000000..751c67a2c --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,63 @@ +# .github/workflows/**main.yml** +name: Django-app workflow + +on: [push] + +jobs: + tests: + # «Раннер» — создание изолированного окружения с последней версией Ubuntu + runs-on: ubuntu-latest + + steps: + # Запуск actions checkout — готового скрипта + # для клонирования репозитория + - uses: actions/checkout@v2 + - name: Set up Python + # Запуск actions setup-python — готового скрипта + # для развёртывания окружения Python + uses: actions/setup-python@v2 + with: + # Выбор версии Python + python-version: 3.7 + + - name: Install dependencies + run: | + # обновление pip + python -m pip install --upgrade pip + # установка flake8 и его плагинов + pip install flake8 pep8-naming flake8-broken-line flake8-return flake8-isort + # установка зависимостей + pip install -r requirements.txt + + - name: Test with flake8 and django tests + run: | + # запуск проверки проекта по flake8 + python -m flake8 + # перейти в папку, содержащую manage.py — + #<корневая_папка_infra_actions>/<папка_проекта>/manage.py + cd infra_project/ + # запустить написанные разработчиком тесты + python manage.py test + build_and_push_to_docker_hub: + name: Push Docker image to Docker Hub + runs-on: ubuntu-latest + needs: tests + steps: + - name: Check out the repo + # Проверка доступности репозитория Docker Hub для workflow + uses: actions/checkout@v2 + - name: Set up Docker Buildx + # Вызов сборщика контейнеров docker + uses: docker/setup-buildx-action@v1 + - name: Login to Docker + # Запуск скрипта авторизации на Docker Hub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + - name: Push to Docker Hub + # Пуш образа в Docker Hub + uses: docker/build-push-action@v2 + with: + push: true + tags: noteasycode/infra_project:latest \ No newline at end of file diff --git a/README.md b/README.md index d9d36e32f..9e163ebdb 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,3 @@ # infra_actions + Учебный проект для изучения работы GitHub Actions (Яндекс Практикум) diff --git a/infra_project/infra_app/tests.py b/infra_project/infra_app/tests.py index 77c89862c..6e4c52c76 100644 --- a/infra_project/infra_app/tests.py +++ b/infra_project/infra_app/tests.py @@ -1,4 +1,5 @@ from http import HTTPStatus + from django.test import Client, TestCase @@ -11,7 +12,7 @@ def test_about_url_exists_at_desired_location(self): response = self.guest_client.get('/') self.assertEqual(response.status_code, HTTPStatus.OK) - response = self.guest_client.get('/second_page/') + response = self.guest_client.get('/second/') self.assertEqual(response.status_code, HTTPStatus.OK) def test_page_shows_correct_content(self): @@ -19,5 +20,5 @@ def test_page_shows_correct_content(self): response = self.guest_client.get('/') self.assertContains(response, 'У меня получилось!') - response = self.guest_client.get('/second_page/') - self.assertContains(response, 'А это вторая страница!') + response = self.guest_client.get('/second/') + self.assertContains(response, 'А это вторая страница') diff --git a/infra_project/infra_project/urls.py b/infra_project/infra_project/urls.py index 10c002bae..1e9393d95 100644 --- a/infra_project/infra_project/urls.py +++ b/infra_project/infra_project/urls.py @@ -1,20 +1,5 @@ -"""infra_project URL Configuration - -The `urlpatterns` list routes URLs to views. For more information please see: - https://docs.djangoproject.com/en/2.2/topics/http/urls/ -Examples: -Function views - 1. Add an import: from my_app import views - 2. Add a URL to urlpatterns: path('', views.home, name='home') -Class-based views - 1. Add an import: from other_app.views import Home - 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') -Including another URLconf - 1. Import the include() function: from django.urls import include, path - 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) -""" from django.contrib import admin -from django.urls import path, include +from django.urls import include, path urlpatterns = [ path('', include('infra_app.urls', namespace='infra_app')), diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 000000000..52cdd9f7a --- /dev/null +++ b/setup.cfg @@ -0,0 +1,12 @@ +[flake8] +ignore = + W503, + F811 +exclude = + tests/, + */migrations/, + venv/, + env/ +per-file-ignores = + */settings.py:E501 +max-complexity = 10 \ No newline at end of file