Skip to content

Commit a2a726f

Browse files
author
David Mang
committed
Change openssh to appleboy runner
1 parent 215970e commit a2a726f

File tree

1 file changed

+52
-36
lines changed

1 file changed

+52
-36
lines changed

.github/workflows/deploy.yml

Lines changed: 52 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -35,46 +35,62 @@ jobs:
3535
needs: build
3636

3737
steps:
38+
- name: SSH to VM and Execute Docker-Compose Down
39+
uses: appleboy/[email protected]
40+
with:
41+
host: ${{ secrets.SERVER_DOMAIN }}
42+
username: ${{ secrets.SERVER_USER }}
43+
key: ${{ secrets.SSH_KEY }}
44+
script: |
45+
docker compose -f compose.yml --env-file=.env down --remove-orphans --rmi all
46+
3847
- name: Checkout Code
3948
uses: actions/checkout@v3
4049

41-
- name: Install SSH Client
42-
run: sudo apt-get update && sudo apt-get install -y openssh-client
43-
44-
- name: Add SSH Key
45-
uses: webfactory/[email protected]
46-
with:
47-
ssh-private-key: ${{ secrets.SSH_KEY }}
48-
4950
- name: Copy Files to Server
50-
run: |
51-
scp -o StrictHostKeyChecking=no ./compose.yml ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_DOMAIN }}:~/compose.yml
52-
scp -o StrictHostKeyChecking=no -r ./letsencrypt ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_DOMAIN }}:~/letsencrypt
51+
uses: appleboy/[email protected]
52+
with:
53+
host: ${{ secrets.SERVER_DOMAIN }}
54+
username: ${{ secrets.SERVER_USER }}
55+
key: ${{ secrets.SSH_KEY }}
56+
script: |
57+
scp -o StrictHostKeyChecking=no ./compose.yml ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_DOMAIN }}:~/compose.yml
58+
scp -o StrictHostKeyChecking=no -r ./letsencrypt ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_DOMAIN }}:~/letsencrypt
5359
5460
- name: Set Up Environment Variables
55-
run: |
56-
ssh -o StrictHostKeyChecking=no ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_DOMAIN }} << 'EOF'
57-
echo "OPENAI_API_KEY=${{ secrets.OPENAI_API_KEY }}" >> .env
58-
echo "DEBUG=${{ secrets.DEBUG }}" >> .env
59-
echo "SECRET_KEY=${{ secrets.SECRET_KEY }}" >> .env
60-
echo "POSTGRES_DB=${{ secrets.POSTGRES_DB }}" >> .env
61-
echo "POSTGRES_USER=${{ secrets.POSTGRES_USER }}" >> .env
62-
echo "POSTGRES_PASSWORD=${{ secrets.POSTGRES_PASSWORD }}" >> .env
63-
echo "POSTGRES_HOST=${{ secrets.POSTGRES_HOST }}" >> .env
64-
echo "EMAIL_USE_TLS=${{ secrets.EMAIL_USE_TLS }}" >> .env
65-
echo "EMAIL_HOST=${{ secrets.EMAIL_HOST }}" >> .env
66-
echo "EMAIL_HOST_USER=${{ secrets.EMAIL_HOST_USER }}" >> .env
67-
echo "EMAIL_HOST_PASSWORD=${{ secrets.EMAIL_HOST_PASSWORD }}" >> .env
68-
echo "DEFAULT_FROM_EMAIL=${{ secrets.DEFAULT_FROM_EMAIL }}" >> .env
69-
echo "EMAIL_PORT=${{ secrets.EMAIL_PORT }}" >> .env
70-
echo "DJANGO_SUPERUSER_USERNAME=${{ secrets.DJANGO_SUPERUSER_USERNAME }}" >> .env
71-
echo "DJANGO_SUPERUSER_PASSWORD=${{ secrets.DJANGO_SUPERUSER_PASSWORD }}" >> .env
72-
echo "DJANGO_SUPERUSER_EMAIL=${{ secrets.DJANGO_SUPERUSER_EMAIL }}" >> .env
73-
EOF
61+
with:
62+
host: ${{ secrets.SERVER_DOMAIN }}
63+
username: ${{ secrets.SERVER_USER }}
64+
key: ${{ secrets.SSH_KEY }}
65+
script: |
66+
ssh -o StrictHostKeyChecking=no ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_DOMAIN }} << 'EOF'
67+
touch .env
68+
echo "OPENAI_API_KEY=${{ secrets.OPENAI_API_KEY }}" >> .env
69+
echo "DEBUG=${{ secrets.DEBUG }}" >> .env
70+
echo "SECRET_KEY=${{ secrets.SECRET_KEY }}" >> .env
71+
echo "POSTGRES_DB=${{ secrets.POSTGRES_DB }}" >> .env
72+
echo "POSTGRES_USER=${{ secrets.POSTGRES_USER }}" >> .env
73+
echo "POSTGRES_PASSWORD=${{ secrets.POSTGRES_PASSWORD }}" >> .env
74+
echo "POSTGRES_HOST=${{ secrets.POSTGRES_HOST }}" >> .env
75+
echo "EMAIL_USE_TLS=${{ secrets.EMAIL_USE_TLS }}" >> .env
76+
echo "EMAIL_HOST=${{ secrets.EMAIL_HOST }}" >> .env
77+
echo "EMAIL_HOST_USER=${{ secrets.EMAIL_HOST_USER }}" >> .env
78+
echo "EMAIL_HOST_PASSWORD=${{ secrets.EMAIL_HOST_PASSWORD }}" >> .env
79+
echo "DEFAULT_FROM_EMAIL=${{ secrets.DEFAULT_FROM_EMAIL }}" >> .env
80+
echo "EMAIL_PORT=${{ secrets.EMAIL_PORT }}" >> .env
81+
echo "DJANGO_SUPERUSER_USERNAME=${{ secrets.DJANGO_SUPERUSER_USERNAME }}" >> .env
82+
echo "DJANGO_SUPERUSER_PASSWORD=${{ secrets.DJANGO_SUPERUSER_PASSWORD }}" >> .env
83+
echo "DJANGO_SUPERUSER_EMAIL=${{ secrets.DJANGO_SUPERUSER_EMAIL }}" >> .env
84+
EOF
7485
75-
- name: Deploy on Server
76-
run: |
77-
ssh -o StrictHostKeyChecking=no ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_DOMAIN }} "mkdir -p ~/"
78-
ssh -o StrictHostKeyChecking=no ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_DOMAIN }} "touch ~/letsencrypt/acme.json && chmod 600 ~/letsencrypt/acme.json"
79-
ssh -o StrictHostKeyChecking=no ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_DOMAIN }} "docker login ghcr.io -u ${{ github.actor }} --password-stdin <<< ${{ secrets.GITHUB_TOKEN }}"
80-
ssh -o StrictHostKeyChecking=no ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_DOMAIN }} "docker compose pull && docker compose up -d && docker compose logs"
86+
- name: SSH to VM and Execute Docker-Compose Up
87+
uses: appleboy/[email protected]
88+
with:
89+
host: ${{ secrets.SERVER_DOMAIN }}
90+
username: ${{ secrets.SERVER_USER }}
91+
key: ${{ secrets.SSH_KEY }}
92+
script: |
93+
ssh -o StrictHostKeyChecking=no ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_DOMAIN }} "mkdir -p ~/"
94+
ssh -o StrictHostKeyChecking=no ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_DOMAIN }} "touch ~/letsencrypt/acme.json && chmod 600 ~/letsencrypt/acme.json"
95+
ssh -o StrictHostKeyChecking=no ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_DOMAIN }} "docker login ghcr.io -u ${{ github.actor }} --password-stdin <<< ${{ secrets.GITHUB_TOKEN }}"
96+
ssh -o StrictHostKeyChecking=no ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_DOMAIN }} "docker compose pull && docker compose up -d && docker compose logs"

0 commit comments

Comments
 (0)