name: JT808 CI/CD on: push: branches: - main jobs: build-and-deploy: runs-on: xw-runner steps: - name: Checkout code uses: https://gitea.com/actions/checkout@v4 - name: Determine image tag id: vars run: | REGISTRY_URL='${{ secrets.REGISTRY_URL }}' IMAGE_NAME='${{ secrets.IMAGE_NAME }}' SHA=$(git rev-parse --short HEAD) echo "IMAGE_TAG=${REGISTRY_URL}/${IMAGE_NAME}:${SHA}" >> "$GITHUB_OUTPUT" - name: Build Jar (in Maven container) run: | docker run --rm \ -v "$PWD":/workspace \ -w /workspace \ maven:3.9.9-eclipse-temurin-17 \ mvn -B clean package -DskipTests - name: Build and push Docker image run: | docker build --pull -t "${{ steps.vars.outputs.IMAGE_TAG }}" . docker push "${{ steps.vars.outputs.IMAGE_TAG }}" - name: Deploy to target host uses: https://gitea.com/appleboy/ssh-action@v0.1.5 with: host: ${{ secrets.DEPLOY_HOST }} port: ${{ secrets.DEPLOY_PORT }} username: ${{ secrets.DEPLOY_USER }} key: ${{ secrets.DEPLOY_PRIVATE_KEY }} script: | docker pull ${{ steps.vars.outputs.IMAGE_TAG }} docker stop jt808-server || true docker rm jt808-server || true docker run -d --name jt808-server -p 8080:8080 -p 20048:20048 ${{ steps.vars.outputs.IMAGE_TAG }}