· 4 years ago · May 29, 2021, 07:32 PM
1name: Wildberris workflow
2
3on:
4 push:
5 branches:
6 - master
7
8jobs:
9 magic_deploy:
10 name: Deploy to server with remote docker-compose
11 runs-on: ubuntu-latest
12 steps:
13 - uses: actions/checkout@v2
14 - name: Set up Python
15 uses: actions/setup-python@v2
16 with:
17 python-version: 3.9
18
19 - name: Install SSH key to github server
20 uses: kielabokkie/ssh-key-and-known-hosts-action@v1.1.0
21 with:
22 ssh-private-key: ${{ secrets.SSH_KEY }}
23 ssh-host: ${{ secrets.IP_HOST }}
24
25 - name: Install latest version of docker with experimental compose support
26 run: |
27 curl -L https://raw.githubusercontent.com/docker/compose-cli/main/scripts/install/install_linux.sh | sh
28 pip install docker-compose
29
30 - name: Add environment variables
31 run: |
32 touch .env
33 echo DB_ENGINE=${{ secrets.DB_ENGINE }} >> .env
34 echo DB_NAME=${{ secrets.DB_NAME }} >> .env
35 echo POSTGRES_USER=${{ secrets.POSTGRES_USER }} >> .env
36 echo POSTGRES_PASSWORD=${{ secrets.POSTGRES_PASSWORD }} >> .env
37 echo DB_HOST=${{ secrets.DB_HOST }} >> .env
38 echo DB_PORT=${{ secrets.DB_PORT }} >> .env
39 echo SECRET_KEY=${{ secrets.SECRET_KEY }} >> .env
40 echo DJANGO_SUPERUSER_PASSWORD=${{ secrets.DJANGO_SUPERUSER_PASSWORD }} >> .env
41 echo DJANGO_SUPERUSER_EMAIL=${{ secrets.DJANGO_SUPERUSER_EMAIL }} >> .env
42 echo DJANGO_SUPERUSER_USERNAME=${{ secrets.DJANGO_SUPERUSER_USERNAME }} >> .env
43
44 - name: Remote docker compose down/up using context (zero files)
45 run: |
46 docker context create remote --docker "host=ssh://${{ secrets.SSH_USER }}@${{ secrets.IP_HOST }}"
47 docker context use remote
48 docker image prune -f
49 docker-compose --context remote -f docker-compose-prod.yaml down
50 docker-compose --context remote -f docker-compose-prod.yaml up -d --build --force-recreate
51
52 send_message:
53 name: Send telegram notification
54 runs-on: ubuntu-latest
55 needs: magic_deploy
56 steps:
57 - name: Send message
58 uses: appleboy/telegram-action@master
59 with:
60 to: ${{ secrets.TELEGRAM_TO }}
61 token: ${{ secrets.TELEGRAM_TOKEN }}
62 message: ${{ github.workflow }} done!