flake8 #131
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
name: Foodgram workflow | |
on: | |
push: | |
branches: | |
- master | |
jobs: | |
tests: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: ["3.10", "3.11"] | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v2 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install flake8 pep8-naming flake8-broken-line flake8-return flake8-isort | |
pip install -r backend/requirements.txt | |
- name: Test with flake8 | |
run: | | |
python -m flake8 | |
- name: Run tests with pytest | |
run: | | |
pytest --cov=./backend/ --cov-report=xml | |
- name: Upload coverage reports to Codecov | |
uses: codecov/codecov-action@v2 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
files: ./coverage.xml | |
flags: pytest | |
name: foodgram-pytest-cov | |
env_vars: OS,PYTHON | |
fail_ci_if_error: true | |
verbose: true | |
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 | |
uses: actions/checkout@v2 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v1 | |
- name: Login to Docker | |
uses: docker/login-action@v1 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- name: Push backend | |
uses: docker/build-push-action@v2 | |
with: | |
context: ./backend | |
push: true | |
tags: evol93/foodgram_backend:latest | |
- name: Push frontend | |
uses: docker/build-push-action@v2 | |
with: | |
context: ./frontend | |
push: true | |
tags: evol93/foodgram_frontend:latest | |
deploy: | |
runs-on: ubuntu-latest | |
needs: build_and_push_to_docker_hub | |
if: github.ref == 'refs/heads/master' | |
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 }} | |
script: | | |
sudo rm .env | |
sudo touch .env | |
sudo chmod 666 .env | |
sudo echo DB_ENGINE=${{ secrets.DB_ENGINE }} >> .env | |
sudo echo DB_NAME=${{ secrets.DB_NAME }} >> .env | |
sudo echo POSTGRES_USER=${{ secrets.POSTGRES_USER }} >> .env | |
sudo echo POSTGRES_PASSWORD=${{ secrets.POSTGRES_PASSWORD }} >> .env | |
sudo echo DB_HOST=${{ secrets.DB_HOST }} >> .env | |
sudo echo DB_PORT=${{ secrets.DB_PORT }} >> .env | |
sudo echo DEBUG=${{ secrets.DEBUG }} >> .env | |
sudo echo SECRET_KEY=${{ secrets.SECRET_KEY }} >> .env | |
sudo echo ALLOWED_HOSTS=${{ secrets.ALLOWED_HOSTS }} >> .env | |
sudo echo MODE=${{ secrets.MODE }} >> .env | |
cd infra/ | |
sudo docker pull evol93/foodgram_backend:latest | |
sudo docker pull evol93/foodgram_frontend:latest | |
sudo docker-compose stop | |
sudo docker-compose rm backend | |
sudo docker-compose up -d --build |