name: Deploy Docker Image on: push: branches: [ "main" ] pull_request: branches: [ "main" ] jobs: build-and-deploy: runs-on: ubuntu-latest steps: - name: Checkout code uses: https://gitea.com/actions/checkout@v3 - name: Login to Docker Hub run: echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin - name: Build and push run: | docker build -t ${{ secrets.DOCKER_USERNAME }}/wx-pyq:latest . docker push ${{ secrets.DOCKER_USERNAME }}/wx-pyq:latest - name: Deploy to Server run: | # Install SSH client if command -v apk > /dev/null; then sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories apk add --no-cache openssh-client elif command -v apt-get > /dev/null; then sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list apt-get update && apt-get install -y openssh-client fi # Setup SSH key mkdir -p ~/.ssh echo "${{ secrets.SERVER_KEY }}" > ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa # Deploy ssh -o StrictHostKeyChecking=no -i ~/.ssh/id_rsa ${{ secrets.SERVER_USERNAME }}@${{ secrets.SERVER_HOST }} " docker pull ${{ secrets.DOCKER_USERNAME }}/wx-pyq:latest && \ (docker stop wx-pyq || true) && \ (docker rm wx-pyq || true) && \ docker run -d --name wx-pyq -p 3321:80 ${{ secrets.DOCKER_USERNAME }}/wx-pyq:latest "