From 26a4d41ca2dabd5c91a596ae1119eee1b5da660f Mon Sep 17 00:00:00 2001 From: remsky Date: Fri, 31 Jan 2025 00:44:57 -0700 Subject: [PATCH] Update Docker workflow and bump version to 0.1.4 --- .github/workflows/docker-publish.yml | 140 +++------------------------ VERSION | 1 + pyproject.toml | 2 +- 3 files changed, 18 insertions(+), 125 deletions(-) create mode 100644 VERSION diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 1f852ae..fbd6e3e 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -1,152 +1,44 @@ -name: Docker Build, Slim, and Publish +name: Docker Build and Publish on: push: - branches: - - master tags: [ 'v*.*.*' ] - # Allow manual trigger from GitHub UI workflow_dispatch: -env: - REGISTRY: ghcr.io - IMAGE_NAME: ${{ github.repository }} - jobs: build: runs-on: ubuntu-latest permissions: - contents: read + contents: write packages: write - actions: write - steps: - name: Checkout repository uses: actions/checkout@v4 - - name: Log in to the Container registry - uses: docker/login-action@v3 + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + + - name: Log in to GitHub Container Registry + uses: docker/login-action@v2 with: - registry: ${{ env.REGISTRY }} + registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - # Set up image names (converting to lowercase) - - name: Set image names + - name: Run build script run: | - echo "GPU_IMAGE_NAME=${{ env.REGISTRY }}/$(echo ${{ env.IMAGE_NAME }} | tr '[:upper:]' '[:lower:]')-gpu" >> $GITHUB_ENV - echo "CPU_IMAGE_NAME=${{ env.REGISTRY }}/$(echo ${{ env.IMAGE_NAME }} | tr '[:upper:]' '[:lower:]')-cpu" >> $GITHUB_ENV - echo "UI_IMAGE_NAME=${{ env.REGISTRY }}/$(echo ${{ env.IMAGE_NAME }} | tr '[:upper:]' '[:lower:]')-ui" >> $GITHUB_ENV + chmod +x docker/build.sh + VERSION=$(cat VERSION) + docker/build.sh $VERSION - # Build GPU version - - name: Build GPU Docker image - uses: docker/build-push-action@v5 - with: - context: . - file: ./docker/gpu/Dockerfile - push: false - load: true - tags: ${{ env.GPU_IMAGE_NAME }}:v0.1.0 - build-args: | - DOCKER_BUILDKIT=1 - platforms: linux/amd64 - - # Slim GPU version - - name: Slim GPU Docker image - run: | - docker pull dslim/slim - docker run --rm -v /var/run/docker.sock:/var/run/docker.sock dslim/slim build \ - --target ${{ env.GPU_IMAGE_NAME }}:v0.1.0 \ - --tag ${{ env.GPU_IMAGE_NAME }}:v0.1.0-slim \ - --include-path=/app/models \ - --include-path=/app/api/src/voices \ - --include-path=/app/.venv \ - --include-bin=/usr/local/cuda/lib64 \ - --include-bin=/usr/lib/x86_64-linux-gnu/libcudart.so \ - --include-bin=/usr/lib/x86_64-linux-gnu/libcuda.so \ - --include-shell \ - --include-exe=python3,python3.10,espeak-ng \ - --exclude-mounts=false \ - --http-probe=false - - # Push GPU versions - - name: Push GPU Docker images - run: | - docker push ${{ env.GPU_IMAGE_NAME }}:v0.1.0 - docker push ${{ env.GPU_IMAGE_NAME }}:v0.1.0-slim - docker tag ${{ env.GPU_IMAGE_NAME }}:v0.1.0 ${{ env.GPU_IMAGE_NAME }}:latest - docker tag ${{ env.GPU_IMAGE_NAME }}:v0.1.0-slim ${{ env.GPU_IMAGE_NAME }}:latest-slim - docker push ${{ env.GPU_IMAGE_NAME }}:latest - docker push ${{ env.GPU_IMAGE_NAME }}:latest-slim - - # Build CPU version - - name: Build CPU Docker image - uses: docker/build-push-action@v5 - with: - context: . - file: ./docker/cpu/Dockerfile - push: false - load: true - tags: ${{ env.CPU_IMAGE_NAME }}:v0.1.0 - build-args: | - DOCKER_BUILDKIT=1 - platforms: linux/amd64 - - # Slim CPU version - - name: Slim CPU Docker image - run: | - docker run --rm -v /var/run/docker.sock:/var/run/docker.sock dslim/slim build \ - --target ${{ env.CPU_IMAGE_NAME }}:v0.1.0 \ - --tag ${{ env.CPU_IMAGE_NAME }}:v0.1.0-slim \ - --include-path=/app/models \ - --include-path=/app/api/src/voices \ - --include-path=/app/.venv \ - --include-shell \ - --include-exe=python3,python3.10,espeak-ng \ - --exclude-mounts=false \ - --http-probe=false - - # Push CPU versions - - name: Push CPU Docker images - run: | - docker push ${{ env.CPU_IMAGE_NAME }}:v0.1.0 - docker push ${{ env.CPU_IMAGE_NAME }}:v0.1.0-slim - docker tag ${{ env.CPU_IMAGE_NAME }}:v0.1.0 ${{ env.CPU_IMAGE_NAME }}:latest - docker tag ${{ env.CPU_IMAGE_NAME }}:v0.1.0-slim ${{ env.CPU_IMAGE_NAME }}:latest-slim - docker push ${{ env.CPU_IMAGE_NAME }}:latest - docker push ${{ env.CPU_IMAGE_NAME }}:latest-slim - - # Build and push UI version - - name: Build and push UI Docker image - uses: docker/build-push-action@v5 - with: - context: ./ui - file: ./ui/Dockerfile - push: true - tags: | - ${{ env.UI_IMAGE_NAME }}:v0.1.0 - ${{ env.UI_IMAGE_NAME }}:latest - build-args: | - DOCKER_BUILDKIT=1 - platforms: linux/amd64 - - create-release: - needs: build - runs-on: ubuntu-latest - # Only run this job if we're pushing a tag - if: startsWith(github.ref, 'refs/tags/') - permissions: - contents: write - packages: write - steps: - - name: Checkout code - uses: actions/checkout@v4 - - name: Create Release uses: softprops/action-gh-release@v1 env: IS_PRERELEASE: ${{ contains(github.ref, '-pre') }} with: generate_release_notes: true - draft: false + draft: true prerelease: ${{ contains(github.ref, '-pre') }} diff --git a/VERSION b/VERSION new file mode 100644 index 0000000..446ba66 --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +0.1.4 \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index a07d1a3..ca45eb5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "kokoro-fastapi" -version = "0.1.0" +version = "0.1.4" description = "FastAPI TTS Service" readme = "README.md" requires-python = ">=3.10"