-name: Deploy Test
+name: Test and Deploy
on: [push, workflow_dispatch]
jobs:
run-offline-tests:
run-online-tests:
runs-on: ubuntu-latest
- needs: [run-offline-tests, deploy-test-instance]
+ needs: deploy-test-instance
steps:
- uses: actions/checkout@v1
run: |
pytest test_online.py
+ deploy-prod-instance:
+ needs: run-online-tests
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v1
+
+ - name: Copy repo contents to server via SCP
+ uses: appleboy/scp-action@master
+ with:
+ host: ${{ secrets.HOST }}
+ username: ${{ secrets.USERNAME }}
+ port: ${{ secrets.PORT }}
+ key: ${{ secrets.SSHKEY }}
+ source: "."
+ target: "/var/www/littlesongplace"
+
+ - name: Run production server
+ uses: appleboy/ssh-action@master
+ with:
+ host: ${{ secrets.HOST }}
+ USERNAME: ${{ secrets.USERNAME }}
+ PORT: ${{ secrets.PORT }}
+ KEY: ${{ secrets.SSHKEY }}
+ script: |
+ # Setup venv
+ cd /var/www/littlesongplace
+ python3 -m venv venv
+ . venv/bin/activate
+ pip install -r requirements.txt
+
+ # Restart service
+ sudo systemctl restart littlesongplace.service