From 441698de16b8e6c97c60f00a474038e4dbf736fe Mon Sep 17 00:00:00 2001 From: Alexander28-31 Date: Mon, 19 Sep 2022 21:40:29 +0300 Subject: [PATCH 01/10] =?UTF-8?q?=D0=B2=D0=B0=D1=88=5F=D0=BA=D0=BE=D0=BC?= =?UTF-8?q?=D0=BC=D0=BE=D0=B9=C3=91=C3=A2=C2=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/README.md b/README.md index d9d36e32fe..9978667c63 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,12 @@ # infra_actions Учебный проект для изучения работы GitHub Actions (Яндекс Практикум) + +## Запуск проета +Клонировать репозиторий +```git clone git@github.com:<ваш_username>/infra_actions.git``` + +Создать и активровать окружение +```python -m venv venv && . venv/bin/activate``` + +Установить зависимости +```pip install -r requirements.txt ``` \ No newline at end of file From d0114ef5740d8a4cd37ef92913c5c240502a0275 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B0=D0=BD=D0=B4=D1=80?= <99709523+Alexander28-31@users.noreply.github.com> Date: Tue, 20 Sep 2022 21:11:42 +0300 Subject: [PATCH 02/10] Create main.yml --- .github/workflows/main.yml | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000000..18a6a3e3d7 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,36 @@ +# This is a basic workflow to help you get started with Actions + +name: CI + +# Controls when the workflow will run +on: + # Triggers the workflow on push or pull request events but only for the "main" branch + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # This workflow contains a single job called "build" + build: + # The type of runner that the job will run on + runs-on: ubuntu-latest + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v3 + + # Runs a single command using the runners shell + - name: Run a one-line script + run: echo Hello, world! + + # Runs a set of commands using the runners shell + - name: Run a multi-line script + run: | + echo Add other actions to build, + echo test, and deploy your project. From e76f7ebdb7ffa0810e697f524fae872c97db28fd Mon Sep 17 00:00:00 2001 From: Alexander28-31 Date: Tue, 20 Sep 2022 21:19:19 +0300 Subject: [PATCH 03/10] add test with flake8 --- .github/workflows/main.yml | 55 +++++++++++++++++++------------------- 1 file changed, 27 insertions(+), 28 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 18a6a3e3d7..2bed860bab 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,36 +1,35 @@ -# This is a basic workflow to help you get started with Actions +# .github/workflows/**main.yml** +name: Django-app workflow -name: CI +on: [push] -# Controls when the workflow will run -on: - # Triggers the workflow on push or pull request events but only for the "main" branch - push: - branches: [ "main" ] - pull_request: - branches: [ "main" ] - - # Allows you to run this workflow manually from the Actions tab - workflow_dispatch: - -# A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: - # This workflow contains a single job called "build" - build: - # The type of runner that the job will run on + tests: + # «Раннер» — создание изолированного окружения с последней версией Ubuntu runs-on: ubuntu-latest - # Steps represent a sequence of tasks that will be executed as part of the job steps: - # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3 + # Запуск 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 - # Runs a single command using the runners shell - - name: Run a one-line script - run: echo Hello, world! + - 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 - # Runs a set of commands using the runners shell - - name: Run a multi-line script - run: | - echo Add other actions to build, - echo test, and deploy your project. + - name: Test with flake8 and django tests + run: | + # запуск проверки проекта по flake8 + python -m flake8 \ No newline at end of file From e236c02fbf0830ff53a69d8972d65216f9ac3a01 Mon Sep 17 00:00:00 2001 From: Alexander28-31 Date: Tue, 20 Sep 2022 22:14:08 +0300 Subject: [PATCH 04/10] Test --- .github/workflows/main.yml | 6 +++++- infra_project/infra_app/tests.py | 1 + infra_project/infra_project/urls.py | 2 +- infra_project/manage.py | 3 ++- setup.cfg | 12 ++++++++++++ 5 files changed, 21 insertions(+), 3 deletions(-) create mode 100644 setup.cfg diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 2bed860bab..85a600c681 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -32,4 +32,8 @@ jobs: - name: Test with flake8 and django tests run: | # запуск проверки проекта по flake8 - python -m flake8 \ No newline at end of file + python -m flake8 + # перейти в папку, содержащую manage.py — + #<корневая_папка_infra_actions>/<папка_проекта>/manage.py + cd infra_project/ + # запустить написанные разработчиком тесты diff --git a/infra_project/infra_app/tests.py b/infra_project/infra_app/tests.py index 77c89862cb..dc049b18d9 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 diff --git a/infra_project/infra_project/urls.py b/infra_project/infra_project/urls.py index 10c002baed..c6a29369be 100644 --- a/infra_project/infra_project/urls.py +++ b/infra_project/infra_project/urls.py @@ -14,7 +14,7 @@ 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/infra_project/manage.py b/infra_project/manage.py index 82ee86cfa0..7c05f4ea58 100644 --- a/infra_project/manage.py +++ b/infra_project/manage.py @@ -5,7 +5,8 @@ def main(): - os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'infra_project.settings') + os.environ.setdefault('DJANGO_SETTINGS_MODULE', + 'infra_project.settings') try: from django.core.management import execute_from_command_line except ImportError as exc: diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 0000000000..9e61d1f172 --- /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 From 85043a40d67204eb09bde0eb052fd9348875f991 Mon Sep 17 00:00:00 2001 From: Alexander Date: Thu, 22 Sep 2022 09:55:57 +0300 Subject: [PATCH 05/10] Initial commit Proj 'review2' Sprint_16 Merge pull request #1 from anatoly-kor/update-requirements update requirements --- .github/workflows/main.yml | 119 +++++++++++++++++++++---------- infra_project/infra_app/tests.py | 2 +- infra_project/infra_app/urls.py | 2 +- 3 files changed, 82 insertions(+), 41 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 85a600c681..1e7a09de89 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,39 +1,80 @@ -# .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/ - # запустить написанные разработчиком тесты +# .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/ + # запустить написанные разработчиком тесты + + deploy: + runs-on: ubuntu-latest + needs: build_and_push_to_docker_hub + steps: + - name: executing remote ssh commands to deploy + uses: appleboy/ssh-action@master + with: + host: ${{ secrets.HOST }} + username: ${{ secrets.USER }} + key: ${{ secrets.SSH_KEY }} + passphrase: ${{ secrets.PASSPHRASE }} # Если ваш ssh-ключ защищён фразой-паролем + script: | + # Выполняет pull образа с DockerHub + sudo docker pull bednenko1604/none + #остановка всех контейнеров + sudo docker stop $(sudo docker ps -a -q) + sudo docker run --rm -d -p 5000:5000 bednenko1604/none +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: bednenko1604/none:latest diff --git a/infra_project/infra_app/tests.py b/infra_project/infra_app/tests.py index dc049b18d9..fb9d51d96a 100644 --- a/infra_project/infra_app/tests.py +++ b/infra_project/infra_app/tests.py @@ -21,4 +21,4 @@ def test_page_shows_correct_content(self): self.assertContains(response, 'У меня получилось!') response = self.guest_client.get('/second_page/') - self.assertContains(response, 'А это вторая страница!') + self.assertContains(response, 'А это вторая страница') diff --git a/infra_project/infra_app/urls.py b/infra_project/infra_app/urls.py index 416b10259e..55822a6f33 100644 --- a/infra_project/infra_app/urls.py +++ b/infra_project/infra_app/urls.py @@ -6,6 +6,6 @@ urlpatterns = [ path('', views.index, name='index'), - path('second/', views.second_page, name='second_page'), + path('second_page/', views.second_page, name='second_page'), ] From 534e0a2994f154e04560aa45e09086f3a137f1c3 Mon Sep 17 00:00:00 2001 From: Alexander Date: Thu, 22 Sep 2022 21:56:30 +0300 Subject: [PATCH 06/10] Test --- .github/workflows/main.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 1e7a09de89..dcff494a2e 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -51,10 +51,10 @@ jobs: passphrase: ${{ secrets.PASSPHRASE }} # Если ваш ssh-ключ защищён фразой-паролем script: | # Выполняет pull образа с DockerHub - sudo docker pull bednenko1604/none + sudo docker pull bednenko1604/test:v1 #остановка всех контейнеров sudo docker stop $(sudo docker ps -a -q) - sudo docker run --rm -d -p 5000:5000 bednenko1604/none + sudo docker run --rm -d -p 5000:5000 bednenko1604/test:v1 build_and_push_to_docker_hub: name: Push Docker image to Docker Hub runs-on: ubuntu-latest @@ -70,11 +70,11 @@ build_and_push_to_docker_hub: # Запуск скрипта авторизации на Docker Hub uses: docker/login-action@v1 with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} + username: ${{ secrets.USER}} + password: ${{ secrets.PASSPHRASE}} - name: Push to Docker Hub # Пуш образа в Docker Hub uses: docker/build-push-action@v2 with: push: true - tags: bednenko1604/none:latest + tags: bednenko1604/test:v1 From 683273cb68eb1d1518799527ca8fe955c0ea6d2e Mon Sep 17 00:00:00 2001 From: Alexander Date: Thu, 22 Sep 2022 22:03:56 +0300 Subject: [PATCH 07/10] Test_1 --- .github/workflows/main.yml | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index dcff494a2e..2081d7dab0 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -55,26 +55,28 @@ jobs: #остановка всех контейнеров sudo docker stop $(sudo docker ps -a -q) sudo docker run --rm -d -p 5000:5000 bednenko1604/test:v1 -build_and_push_to_docker_hub: + + 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 + uses: actions/checkout@v2 - name: Set up Docker Buildx # Вызов сборщика контейнеров docker - uses: docker/setup-buildx-action@v1 - - name: Login to Docker + uses: docker/setup-buildx-action@v1 + - name: Login to Docker # Запуск скрипта авторизации на Docker Hub - uses: docker/login-action@v1 + uses: docker/login-action@v1 with: username: ${{ secrets.USER}} password: ${{ secrets.PASSPHRASE}} - name: Push to Docker Hub - # Пуш образа в Docker Hub - uses: docker/build-push-action@v2 + # Пуш образа в Docker Hub + uses: docker/build-push-action@v2 with: push: true tags: bednenko1604/test:v1 + From 1d0e6713137ac7be7295d547a02f79dde4daf12a Mon Sep 17 00:00:00 2001 From: Alexander Date: Thu, 22 Sep 2022 22:03:56 +0300 Subject: [PATCH 08/10] Test_1 --- .github/workflows/main.yml | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index dcff494a2e..2081d7dab0 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -55,26 +55,28 @@ jobs: #остановка всех контейнеров sudo docker stop $(sudo docker ps -a -q) sudo docker run --rm -d -p 5000:5000 bednenko1604/test:v1 -build_and_push_to_docker_hub: + + 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 + uses: actions/checkout@v2 - name: Set up Docker Buildx # Вызов сборщика контейнеров docker - uses: docker/setup-buildx-action@v1 - - name: Login to Docker + uses: docker/setup-buildx-action@v1 + - name: Login to Docker # Запуск скрипта авторизации на Docker Hub - uses: docker/login-action@v1 + uses: docker/login-action@v1 with: username: ${{ secrets.USER}} password: ${{ secrets.PASSPHRASE}} - name: Push to Docker Hub - # Пуш образа в Docker Hub - uses: docker/build-push-action@v2 + # Пуш образа в Docker Hub + uses: docker/build-push-action@v2 with: push: true tags: bednenko1604/test:v1 + From 43152d64ae7eee5290318bf48f05f39ab1d6424c Mon Sep 17 00:00:00 2001 From: Alexander28-31 Date: Fri, 23 Sep 2022 20:00:22 +0300 Subject: [PATCH 09/10] Merge remote-tracking branch 'origin/main' --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 2081d7dab0..c49d00378a 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -46,7 +46,7 @@ jobs: uses: appleboy/ssh-action@master with: host: ${{ secrets.HOST }} - username: ${{ secrets.USER }} + username: ${{ secrets.USER_VM }} key: ${{ secrets.SSH_KEY }} passphrase: ${{ secrets.PASSPHRASE }} # Если ваш ssh-ключ защищён фразой-паролем script: | From 6589fc56c1f2d6851ba569ded5bba484c493253a Mon Sep 17 00:00:00 2001 From: Alexander28-31 Date: Fri, 23 Sep 2022 20:00:22 +0300 Subject: [PATCH 10/10] Merge remote-tracking branch 'origin/main' --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 2081d7dab0..c49d00378a 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -46,7 +46,7 @@ jobs: uses: appleboy/ssh-action@master with: host: ${{ secrets.HOST }} - username: ${{ secrets.USER }} + username: ${{ secrets.USER_VM }} key: ${{ secrets.SSH_KEY }} passphrase: ${{ secrets.PASSPHRASE }} # Если ваш ssh-ключ защищён фразой-паролем script: |