name: Deploy Strapi on: push: branches: - main jobs: deploy: environment: production runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 - name: Setup SSH key run: | mkdir -p ~/.ssh echo "${{ secrets.VPS_SSH_KEY }}" > ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa ssh-keyscan -H ${{ secrets.VPS_HOST }} >> ~/.ssh/known_hosts - name: Sync project to VPS run: | rsync -avz --delete . ${{ secrets.VPS_USER }}@${{ secrets.VPS_HOST }}:/home/${{ secrets.VPS_USER }}/strapi-app - name: Deploy on VPS run: | ssh ${{ secrets.VPS_USER }}@${{ secrets.VPS_HOST }} " cd /home/${{ secrets.VPS_USER }}/strapi-app && \ docker network create app || true && \ export APP_KEYS='${{ secrets.APP_KEYS }}' && \ export API_TOKEN_SALT='${{ secrets.API_TOKEN_SALT }}' && \ export ADMIN_JWT_SECRET='${{ secrets.ADMIN_JWT_SECRET }}' && \ export TRANSFER_TOKEN_SALT='${{ secrets.TRANSFER_TOKEN_SALT }}' && \ export JWT_SECRET='${{ secrets.JWT_SECRET }}' && \ export DATABASE_CLIENT=postgres && \ export DATABASE_HOST='${{ secrets.POSTGRES_HOST }}' && \ export DATABASE_PORT=5432 && \ export DATABASE_NAME='${{ secrets.POSTGRES_DB }}' && \ export DATABASE_USERNAME='${{ secrets.POSTGRES_USER }}' && \ export DATABASE_PASSWORD='${{ secrets.POSTGRES_PASSWORD }}' && \ export DATABASE_SSL=false && \ docker-compose down && \ docker-compose up -d --build "