|
14 | 14 | REMOTE_APP_DIR: '/www/demo.auth.myvas.com' |
15 | 15 | SERVICE_NAME: 'demo.auth.myvas.com' |
16 | 16 | SSH_HOST: 'demo.auth.myvas.com' |
17 | | - SSH_USERNAME: 'deploy-myvas-auth-demo' |
18 | 17 |
|
19 | 18 | jobs: |
20 | 19 | build-and-deploy: |
@@ -42,36 +41,40 @@ jobs: |
42 | 41 | uses: appleboy/ssh-action@v1 |
43 | 42 | with: |
44 | 43 | host: ${{ env.SSH_HOST }} |
45 | | - username: ${{ env.SSH_USERNAME }} |
| 44 | + username: ${{ secrets.SSH_USERNAME }} |
46 | 45 | key: ${{ secrets.SSH_PRIVATE_KEY }} |
47 | 46 | script: | |
48 | 47 | # Stop the service (if applicable) |
49 | 48 | sudo systemctl stop ${{ env.SERVICE_NAME }} || true |
50 | 49 |
|
51 | 50 | - name: Save the SSH private key to a file |
52 | 51 | run: | |
53 | | - mkdir -p ~/.ssh |
54 | | - echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa |
55 | | - chmod 600 ~/.ssh/id_rsa |
| 52 | + if [ ! -f ~/.ssh/id_rsa ]; then |
| 53 | + mkdir -p ~/.ssh |
| 54 | + echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa |
| 55 | + chmod 600 ~/.ssh/id_rsa |
| 56 | + fi |
56 | 57 |
|
57 | 58 | - name: Add remote server to known_hosts |
58 | 59 | run: | |
59 | | - ssh-keyscan ${{ env.SSH_HOST }} >> ~/.ssh/known_hosts |
| 60 | + if ! grep -q "${{ env.SSH_HOST }}" ~/.ssh/known_hosts; then |
| 61 | + ssh-keyscan ${{ env.SSH_HOST }} >> ~/.ssh/known_hosts |
| 62 | + fi |
60 | 63 |
|
61 | 64 | - name: Copy the published app to the server |
62 | 65 | run: | |
63 | | - rsync --version |
64 | | - rsync -avz --exclude 'demo.sqlite' -e "ssh -i ~/.ssh/id_rsa" ${{ env.PUBLISH_OUTPUT_DIR }}/ ${{ env.SSH_USERNAME }}@${{ env.SSH_HOST }}:${{ env.REMOTE_APP_DIR }}/ |
| 66 | + rsync --version |
| 67 | + rsync -avz --exclude 'demo.sqlite' -e "ssh -i ~/.ssh/id_rsa" ${{ env.PUBLISH_OUTPUT_DIR }}/ ${{ secrets.SSH_USERNAME }}@${{ env.SSH_HOST }}:${{ env.REMOTE_APP_DIR }}/ |
65 | 68 |
|
66 | 69 | - name: Start the service |
67 | 70 | uses: appleboy/ssh-action@v1 |
68 | 71 | with: |
69 | 72 | host: ${{ env.SSH_HOST }} |
70 | | - username: ${{ env.SSH_USERNAME }} |
| 73 | + username: ${{ secrets.SSH_USERNAME }} |
71 | 74 | key: ${{ secrets.SSH_PRIVATE_KEY }} |
72 | 75 | script: | |
73 | 76 | # Set permissions |
74 | | - sudo chown -R '${{ env.SSH_USERNAME }}':'www-data' ${{ env.REMOTE_APP_DIR }} |
| 77 | + sudo chown -R ${{ secrets.SSH_USERNAME }}:www-data ${{ env.REMOTE_APP_DIR }} |
75 | 78 | sudo chmod -R 775 ${{ env.REMOTE_APP_DIR }} |
76 | 79 |
|
77 | 80 | # Restart the service (if applicable) |
|
0 commit comments