name: Deploy WebSocket Test on: push: branches: [release] paths: - 'app/websocket/**' - 'deployments/Dockerfile.websocket' - 'deployments/docker-compose.yaml' - '.github/workflows/websocket-test.yml' jobs: build-and-deploy: runs-on: self-hosted steps: - name: Checkout Code uses: actions/checkout@v3 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Log in to DockerHub uses: docker/login-action@v3 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - name: Build & Push user-service Image run: | docker build -f deployments/Dockerfile.user -t your-dockerhub-user/user-service:latest . docker push your-dockerhub-user/user-service:latest - name: SSH Deploy to Server uses: appleboy/ssh-action@v1.0.0 with: host: ${{ secrets.SERVER_HOST }} username: ${{ secrets.SERVER_USER }} password: ${{ secrets.SERVER_PASSWORD }} # 或使用 key: 和 key_passphrase: script: | cd /home/yourapp/go-monorepo git pull docker compose pull user-service docker compose up -d user-service