-
Notifications
You must be signed in to change notification settings - Fork 13
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #293 from Studio-Yandex-Practicum/develop
Pre-release v2.0-alpha
- Loading branch information
Showing
127 changed files
with
7,684 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
--- | ||
name: Feature request | ||
about: Suggest an idea for this project | ||
title: '' | ||
labels: '' | ||
assignees: '' | ||
|
||
--- | ||
|
||
### **Why?** | ||
|
||
*Зачем выполняется реализация задачи и какую проблему она решает.* | ||
|
||
### **How To Do?** | ||
|
||
*Как мы выполняем реализацию данной задачи, какие действия нужны для достижения цели.* | ||
|
||
### **Where?** | ||
|
||
*Где делаем реализацию задачи, какие сервисы задействованы, ссылка на требования, сcылка на API, скриншоты.* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,131 @@ | ||
name: Stage backend build and deploy | ||
|
||
concurrency: | ||
group: ${{ github.ref }} | ||
cancel-in-progress: true | ||
|
||
on: | ||
push: | ||
branches: | ||
- master | ||
- develop | ||
|
||
workflow_dispatch: | ||
|
||
env: | ||
REGISTRY: ghcr.io | ||
REP_OWNER: studio-yandex-practicum | ||
IMAGE_NAME: procharity_back_2.0_backend | ||
DEPLOY_PATH: /procharity2/full | ||
WORK_DIR: /app | ||
|
||
defaults: | ||
run: | ||
working-directory: . | ||
|
||
jobs: | ||
build-and-push-image-to-github-packages: | ||
name: Push backend Docker image to GitHub Packages | ||
runs-on: ubuntu-latest | ||
environment: | ||
name: deploy | ||
permissions: | ||
contents: read | ||
packages: write | ||
steps: | ||
- name: Set up Docker Buildx | ||
uses: docker/setup-buildx-action@v2 | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
with: | ||
ref: develop | ||
- name: Login to GitHub Container Registry | ||
uses: docker/login-action@v2 | ||
with: | ||
registry: ${{ env.REGISTRY }} | ||
username: ${{ github.actor }} | ||
password: ${{ secrets.GITHUB_TOKEN }} | ||
- name: Sanitize repo slug | ||
uses: actions/github-script@v6 | ||
id: repo_slug | ||
with: | ||
result-encoding: string | ||
script: return 'ghcr.io/${{ github.repository }}'.toLowerCase() | ||
- name: Push Stage to GitHub Container Registry | ||
uses: docker/build-push-action@v4 | ||
with: | ||
context: "{{defaultContext}}" | ||
push: true | ||
tags: ${{ steps.repo_slug.outputs.result }}:stage | ||
|
||
deploy: | ||
name: Deploy | ||
runs-on: ubuntu-latest | ||
needs: build-and-push-image-to-github-packages | ||
environment: | ||
name: deploy | ||
steps: | ||
- name: Check out repository | ||
uses: actions/checkout@v2 | ||
|
||
- name: Copy docker-compose and nginx files | ||
uses: appleboy/scp-action@master | ||
with: | ||
host: ${{ secrets.HOST }} | ||
username: ${{ secrets.SSH_USERNAME }} | ||
password: ${{ secrets.SSH_PASSWORD }} | ||
source: "infra/docker-compose.swag.yml, infra/nginx/*.conf" | ||
target: ${{ env.DEPLOY_PATH }} | ||
- name: Get SHORT_SHA | ||
run: echo "SHORT_SHA=`echo ${{ github.sha }} | cut -c1-8`" >> $GITHUB_ENV | ||
- name: Get COMMIT_DATE | ||
run: echo COMMIT_DATE=$(git show -s --format=%ci ${{ env.SHORT_SHA }}) >> $GITHUB_ENV | ||
- name: Create .env file | ||
uses: appleboy/ssh-action@master | ||
with: | ||
host: ${{ secrets.HOST }} | ||
username: ${{ secrets.SSH_USERNAME }} | ||
password: ${{ secrets.SSH_PASSWORD }} | ||
script: | | ||
cd ${{ env.DEPLOY_PATH }} | ||
mv infra/docker-compose.swag.yml infra/docker-compose.yaml | ||
rm -f .env | ||
cat > .env <<- EOM | ||
POSTGRES_DB=${{ secrets.POSTGRES_DB }} | ||
POSTGRES_USER=${{ secrets.POSTGRES_USER }} | ||
POSTGRES_PASSWORD=${{ secrets.POSTGRES_PASSWORD }} | ||
DB_HOST=${{ secrets.DB_HOST }} | ||
DB_PORT=${{ secrets.DB_PORT }} | ||
BOT_TOKEN=${{ secrets.TELEGRAM_BOT_TOKEN }} | ||
BOT_WEBHOOK_MODE=${{ secrets.BOT_WEBHOOK_MODE }} | ||
APPLICATION_URL=${{ secrets.APPLICATION_URL }} | ||
SECRET_KEY=${{ secrets.SECRET_KEY }} | ||
ROOT_PATH=${{ secrets.ROOT_PATH }} | ||
MAIL_SERVER=${{ secrets.MAIL_SERVER }} | ||
MAIL_LOGIN=${{ secrets.MAIL_LOGIN }} | ||
MAIL_PASSWORD=${{ secrets.MAIL_PASSWORD }} | ||
ORGANIZATIONS_EMAIL=${{ secrets.ORGANIZATIONS_EMAIL }} | ||
EMAIL_ADMIN=${{ secrets.EMAIL_ADMIN }} | ||
LAST_COMMIT=${{ env.SHORT_SHA }} | ||
COMMIT_DATE=${{ env.COMMIT_DATE }} | ||
EOM | ||
start_application: | ||
name: Start application | ||
runs-on: ubuntu-latest | ||
environment: | ||
name: deploy | ||
needs: deploy | ||
steps: | ||
- name: Start application | ||
uses: appleboy/ssh-action@master | ||
with: | ||
host: ${{ secrets.HOST }} | ||
username: ${{ secrets.SSH_USERNAME }} | ||
password: ${{ secrets.SSH_PASSWORD }} | ||
script: | | ||
cd ${{ env.DEPLOY_PATH }}/infra | ||
docker compose --file docker-compose.yaml --env-file ../.env pull backend -q | ||
docker compose --file docker-compose.yaml --env-file ../.env up -d --wait | ||
docker system prune -f || true | ||
docker compose --env-file ../.env exec -Tw ${{ env.WORK_DIR }} backend bash -c "alembic upgrade head" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
name: Stage bot frontend | ||
|
||
on: | ||
push: | ||
branches: | ||
- master | ||
- develop | ||
paths: | ||
- 'front/**' | ||
|
||
workflow_dispatch: | ||
|
||
env: | ||
REGISTRY: ghcr.io | ||
IMAGE_NAME_FRONT: procharity_bot_front | ||
OWNER_LC: studio-yandex-practicum | ||
|
||
|
||
jobs: | ||
build_and_push_to_ghcr: | ||
name: Push front Docker image to Github Container Registry | ||
runs-on: ubuntu-latest | ||
environment: | ||
name: stage_deploy | ||
permissions: | ||
contents: read | ||
packages: write | ||
steps: | ||
- name: Set up Docker Buildx | ||
uses: docker/setup-buildx-action@v2 | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
with: | ||
ref: develop | ||
- name: Login to GitHub Container Registry | ||
uses: docker/login-action@v2 | ||
with: | ||
registry: ${{ env.REGISTRY }} | ||
username: ${{ github.actor }} | ||
password: ${{ secrets.GITHUB_TOKEN }} | ||
- name: Push Front to ghcr.io | ||
uses: docker/build-push-action@v2 | ||
with: | ||
context: "{{defaultContext}}" | ||
file: ./infra/Dockerfile_front | ||
push: true | ||
tags: ${{ env.REGISTRY }}/${{ env.OWNER_LC }}/${{ env.IMAGE_NAME_FRONT }}:prod |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
[submodule "front"] | ||
path = front | ||
url = https://github.com/ProCharity/procharity-front |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
repos: | ||
- repo: https://github.com/pre-commit/pre-commit-hooks | ||
rev: v4.5.0 | ||
hooks: | ||
- id: check-yaml | ||
- id: end-of-file-fixer | ||
- id: check-added-large-files | ||
- id: trailing-whitespace | ||
args: [--markdown-linebreak-ext=md] | ||
- id: check-merge-conflict | ||
- id: mixed-line-ending | ||
- id: no-commit-to-branch | ||
args: [--branch, master, --branch, develop] | ||
|
||
- repo: https://github.com/pycqa/isort | ||
rev: 5.12.0 | ||
hooks: | ||
- id: isort | ||
args: [--profile, black] | ||
|
||
- repo: https://github.com/psf/black | ||
rev: 23.10.0 | ||
hooks: | ||
- id: black | ||
args: [--line-length=120] | ||
|
||
- repo: https://github.com/pycqa/flake8 | ||
rev: 6.1.0 | ||
hooks: | ||
- id: flake8 | ||
additional_dependencies: | ||
- flake8-docstrings | ||
args: [--config, setup.cfg] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
FROM python:3.11 | ||
|
||
RUN mkdir /app | ||
|
||
WORKDIR /app | ||
|
||
COPY requirements.txt /app | ||
|
||
RUN pip3 install -r /app/requirements.txt --no-cache-dir | ||
|
||
COPY . . | ||
|
||
CMD ["uvicorn", "src:app", "--host", "0.0.0.0", "--port", "8000", "--proxy-headers"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
# Восстановление базы данных и применение миграций | ||
|
||
Этот README-файл содержит инструкции по восстановлению базы данных из дампа и применению миграций с использованием Docker и Alembic. | ||
|
||
|
||
## Шаги по восстановлению данных из дампа | ||
|
||
1. Очистите существующие данные и таблицы в базе данных: | ||
|
||
``` | ||
docker exec -it infra-postgres-1 psql -U postgres -d procharity_back_db_local -c "DROP SCHEMA public CASCADE; CREATE SCHEMA public;" | ||
``` | ||
|
||
2. Загрузите данные из дампа SQL: | ||
|
||
``` | ||
docker exec -i infra-postgres-1 psql -U postgres procharity_back_db_local < name_dump.sql | ||
``` | ||
|
||
## Шаги по применению миграций с использованием Alembic | ||
|
||
1. Удалите таблицу alembic_version из базы данных: | ||
|
||
``` | ||
docker exec -it infra-postgres-1 psql -U postgres -d procharity_back_db_local -c "DROP TABLE alembic_version;" | ||
``` | ||
|
||
|
||
2. Примените миграции с помощью Alembic: | ||
|
||
``` | ||
alembic upgrade head | ||
``` | ||
|
||
3. Восстановление базы данных и применение миграций завершено. |
Oops, something went wrong.