name: Deploy to Server on: push: branches: - main jobs: deploy: runs-on: ubuntu-latest timeout-minutes: 15 steps: - name: Checkout code uses: actions/checkout@v4 - name: Copy files to server uses: appleboy/scp-action@v0.1.6 with: host: ${{ secrets.SERVER_HOST }} username: ${{ secrets.SSH_USER }} password: ${{ secrets.SSH_PASSWORD }} source: "." target: "/root/hshop/" rm: true - name: Deploy environment file uses: appleboy/ssh-action@v0.1.6 with: host: ${{ secrets.SERVER_HOST }} username: ${{ secrets.SSH_USER }} password: ${{ secrets.SSH_PASSWORD }} script: | mkdir -p /root/hshop/backend/ printf "%s" "${{ secrets.ENV_FILE_CONTENT }}" > /root/hshop/backend/.env.local - name: Build and start Docker containers uses: appleboy/ssh-action@v0.1.6 with: host: ${{ secrets.SERVER_HOST }} username: ${{ secrets.SSH_USER }} password: ${{ secrets.SSH_PASSWORD }} script: | cd /root/hshop/ docker compose down --remove-orphans --timeout 60 docker compose up --build --detach --parallel docker compose ps docker image prune -af docker builder prune -af