update requirements, update readme #48
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: yamdb_final 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.8 | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install flake8 pytest | |
pip install -r requirements.txt | |
- name: Lint with flake8 | |
run: flake8 ./api | |
- name: Test with pytest | |
run: 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: | |
push: true | |
tags: margonash/yamdb | |
deploy: | |
name: deploy | |
runs-on: ubuntu-latest | |
steps: | |
- name: executing remote ssh commands using password | |
uses: appleboy/ssh-action@master | |
with: | |
host: ${{ secrets.HOST }} | |
username: ${{ secrets.USERNAME }} | |
passphrase: ${{ secrets.PASSWORD }} | |
key: ${{ secrets.KEY }} | |
script: | | |
pwd | |
whoami | |
sudo docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }} | |
sudo docker stop $(sudo docker ps -a -q) | |
sudo docker rm $(sudo docker ps -a -q) | |
sudo rm -rf ~/app | |
sudo docker pull margonash/yamdb | |
sudo docker run --name=deploy -d margonash/yamdb | |
sudo docker cp deploy:/app ~ | |
sudo docker stop $(sudo docker ps -a -q) | |
sudo docker rm $(sudo docker ps -a -q) | |
cd app | |
sudo touch .env | |
sudo bash -c 'echo ${{ secrets.DOT_ENV }} > .env' | |
sudo docker-compose build | |
sudo docker-compose up -d | |
telegram_notification: | |
name: telegram_notification | |
runs-on: ubuntu-latest | |
needs: deploy | |
steps: | |
- name: send custom message with args | |
uses: appleboy/telegram-action@master | |
with: | |
to: ${{ secrets.TELEGRAM_TO }} | |
token: ${{ secrets.TELEGRAM_TOKEN }} | |
message: | | |
Project deployment completed successfully!. |