-
-
Notifications
You must be signed in to change notification settings - Fork 217
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #104 from remsky/v0.1.4
V0.1.4 - CI updates
- Loading branch information
Showing
3 changed files
with
18 additions
and
125 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 | ||
with: | ||
registry: ${{ env.REGISTRY }} | ||
username: ${{ github.actor }} | ||
password: ${{ secrets.GITHUB_TOKEN }} | ||
- name: Set up QEMU | ||
uses: docker/setup-qemu-action@v2 | ||
|
||
# Set up image names (converting to lowercase) | ||
- name: Set image names | ||
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 | ||
# 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 | ||
- name: Set up Docker Buildx | ||
uses: docker/setup-buildx-action@v2 | ||
|
||
# Build CPU version | ||
- name: Build CPU Docker image | ||
uses: docker/build-push-action@v5 | ||
- name: Log in to GitHub Container Registry | ||
uses: docker/login-action@v2 | ||
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 | ||
registry: ghcr.io | ||
username: ${{ github.actor }} | ||
password: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
# Push CPU versions | ||
- name: Push CPU Docker images | ||
- name: Run build script | ||
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 | ||
chmod +x docker/build.sh | ||
VERSION=$(cat VERSION) | ||
docker/build.sh $VERSION | ||
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') }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
0.1.4 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters