name: build_docker run-name: ${{ gitea.event.head_commit.message }} on: pull_request: types: - opened - synchronize push: branches: - main concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: essential: runs-on: ubuntu-latest outputs: Version: 1.0.${{ gitea.run_number }} repo: seryus.ddns.net image_cpu: seryus.ddns.net/unir/paddle-ocr-cpu image_gpu: seryus.ddns.net/unir/paddle-ocr-gpu image_easyocr: seryus.ddns.net/unir/easyocr-cpu image_easyocr_gpu: seryus.ddns.net/unir/easyocr-gpu image_doctr: seryus.ddns.net/unir/doctr-cpu image_doctr_gpu: seryus.ddns.net/unir/doctr-gpu image_raytune: seryus.ddns.net/unir/raytune steps: - name: Output version info run: | echo "## Build Info" >> $GITHUB_STEP_SUMMARY echo "Version: 1.0.${{ gitea.run_number }}" >> $GITHUB_STEP_SUMMARY echo "Event: ${{ gitea.event_name }}" >> $GITHUB_STEP_SUMMARY # PaddleOCR CPU image (amd64 only) build_paddle_ocr: runs-on: ubuntu-latest needs: essential steps: - name: Checkout uses: actions/checkout@v4 - name: Build and push CPU image run: | echo ${{ secrets.CI_READWRITE }} | docker login -u username --password-stdin ${{ needs.essential.outputs.repo }} docker build -f src/paddle_ocr/Dockerfile.cpu src/paddle_ocr \ -t ${{ needs.essential.outputs.image_cpu }}:${{ needs.essential.outputs.Version }} docker tag ${{ needs.essential.outputs.image_cpu }}:${{ needs.essential.outputs.Version }} ${{ needs.essential.outputs.image_cpu }}:latest docker push ${{ needs.essential.outputs.image_cpu }}:${{ needs.essential.outputs.Version }} docker push ${{ needs.essential.outputs.image_cpu }}:latest # PaddleOCR GPU image (amd64 only) build_paddle_ocr_gpu: runs-on: ubuntu-latest needs: essential steps: - name: Checkout uses: actions/checkout@v4 - name: Build and push GPU image run: | echo ${{ secrets.CI_READWRITE }} | docker login -u username --password-stdin ${{ needs.essential.outputs.repo }} docker build -f src/paddle_ocr/Dockerfile.gpu src/paddle_ocr \ -t ${{ needs.essential.outputs.image_gpu }}:${{ needs.essential.outputs.Version }} docker tag ${{ needs.essential.outputs.image_gpu }}:${{ needs.essential.outputs.Version }} ${{ needs.essential.outputs.image_gpu }}:latest docker push ${{ needs.essential.outputs.image_gpu }}:${{ needs.essential.outputs.Version }} docker push ${{ needs.essential.outputs.image_gpu }}:latest # EasyOCR CPU image (amd64 only) build_easyocr: runs-on: ubuntu-latest needs: essential steps: - name: Checkout uses: actions/checkout@v4 - name: Build and push EasyOCR image run: | echo ${{ secrets.CI_READWRITE }} | docker login -u username --password-stdin ${{ needs.essential.outputs.repo }} docker build -f src/easyocr_service/Dockerfile src/easyocr_service \ -t ${{ needs.essential.outputs.image_easyocr }}:${{ needs.essential.outputs.Version }} docker tag ${{ needs.essential.outputs.image_easyocr }}:${{ needs.essential.outputs.Version }} ${{ needs.essential.outputs.image_easyocr }}:latest docker push ${{ needs.essential.outputs.image_easyocr }}:${{ needs.essential.outputs.Version }} docker push ${{ needs.essential.outputs.image_easyocr }}:latest # EasyOCR GPU image (amd64 only) build_easyocr_gpu: runs-on: ubuntu-latest needs: essential steps: - name: Checkout uses: actions/checkout@v4 - name: Build and push EasyOCR GPU image run: | echo ${{ secrets.CI_READWRITE }} | docker login -u username --password-stdin ${{ needs.essential.outputs.repo }} docker build -f src/easyocr_service/Dockerfile.gpu src/easyocr_service \ -t ${{ needs.essential.outputs.image_easyocr_gpu }}:${{ needs.essential.outputs.Version }} docker tag ${{ needs.essential.outputs.image_easyocr_gpu }}:${{ needs.essential.outputs.Version }} ${{ needs.essential.outputs.image_easyocr_gpu }}:latest docker push ${{ needs.essential.outputs.image_easyocr_gpu }}:${{ needs.essential.outputs.Version }} docker push ${{ needs.essential.outputs.image_easyocr_gpu }}:latest # DocTR CPU image (amd64 only) build_doctr: runs-on: ubuntu-latest needs: essential steps: - name: Checkout uses: actions/checkout@v4 - name: Build and push DocTR image run: | echo ${{ secrets.CI_READWRITE }} | docker login -u username --password-stdin ${{ needs.essential.outputs.repo }} docker build -f src/doctr_service/Dockerfile src/doctr_service \ -t ${{ needs.essential.outputs.image_doctr }}:${{ needs.essential.outputs.Version }} docker tag ${{ needs.essential.outputs.image_doctr }}:${{ needs.essential.outputs.Version }} ${{ needs.essential.outputs.image_doctr }}:latest docker push ${{ needs.essential.outputs.image_doctr }}:${{ needs.essential.outputs.Version }} docker push ${{ needs.essential.outputs.image_doctr }}:latest # DocTR GPU image (amd64 only) build_doctr_gpu: runs-on: ubuntu-latest needs: essential steps: - name: Checkout uses: actions/checkout@v4 - name: Build and push DocTR GPU image run: | echo ${{ secrets.CI_READWRITE }} | docker login -u username --password-stdin ${{ needs.essential.outputs.repo }} docker build -f src/doctr_service/Dockerfile.gpu src/doctr_service \ -t ${{ needs.essential.outputs.image_doctr_gpu }}:${{ needs.essential.outputs.Version }} docker tag ${{ needs.essential.outputs.image_doctr_gpu }}:${{ needs.essential.outputs.Version }} ${{ needs.essential.outputs.image_doctr_gpu }}:latest docker push ${{ needs.essential.outputs.image_doctr_gpu }}:${{ needs.essential.outputs.Version }} docker push ${{ needs.essential.outputs.image_doctr_gpu }}:latest # Ray Tune OCR image (amd64 only) build_raytune: runs-on: ubuntu-latest needs: essential steps: - name: Checkout uses: actions/checkout@v4 - name: Build and push Ray Tune image run: | echo ${{ secrets.CI_READWRITE }} | docker login -u username --password-stdin ${{ needs.essential.outputs.repo }} docker build -f src/raytune/Dockerfile src/raytune \ -t ${{ needs.essential.outputs.image_raytune }}:${{ needs.essential.outputs.Version }} docker tag ${{ needs.essential.outputs.image_raytune }}:${{ needs.essential.outputs.Version }} ${{ needs.essential.outputs.image_raytune }}:latest docker push ${{ needs.essential.outputs.image_raytune }}:${{ needs.essential.outputs.Version }} docker push ${{ needs.essential.outputs.image_raytune }}:latest