Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- name: Yamdb workflow
- on: [push]
- jobs:
- tests:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- - name: Set up Python
- uses: actions/setup-python@v2
- with:
- python-version: 3.7
- - 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 api_yamdb/requirements.txt
- - name: Test with flake8 and django tests
- run: |
- python -m flake8
- pytest
- 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 to Docker Hub
- uses: docker/build-push-action@v2
- with:
- context: api_yamdb/
- push: true
- tags: olegpletnev/yamdb_final: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 }}
- script: |
- sudo docker-compose stop
- sudo docker-compose rm web
- sudo rm .env
- touch .env
- echo DB_ENGINE=${{ secrets.DB_ENGINE }} >> .env
- echo DB_NAME=${{ secrets.DB_NAME }} >> .env
- echo POSTGRES_USER=${{ secrets.POSTGRES_USER }} >> .env
- echo POSTGRES_PASSWORD=${{ secrets.POSTGRES_PASSWORD }} >> .env
- echo DB_HOST=${{ secrets.DB_HOST }} >> .env
- echo DB_PORT=${{ secrets.DB_PORT }} >> .env
- sudo docker-compose up -d --build
- sudo docker-compose exec -T web python manage.py migrate
- sudo docker-compose exec -T web python manage.py collectstatic --no-input
- send_message:
- runs-on: ubuntu-latest
- needs: deploy
- steps:
- - name: send message
- uses: appleboy/telegram-action@master
- with:
- to: ${{ secrets.TELEGRAM_TO }}
- token: ${{ secrets.TELEGRAM_TOKEN }}
- message: ${{ github.workflow }} успешно выполнен!
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement