From aa5390b0727f19da8ad1d4f7a8253f38ab4f489f Mon Sep 17 00:00:00 2001 From: Fedir Zadniprovskyi Date: Sun, 26 May 2024 11:54:42 -0700 Subject: [PATCH] feat: add gha workflow for building and pushing docker images --- .dockerignore | 2 + .github/workflows/docker-build-and-push.yaml | 51 ++++++++++++++++++++ .gitignore | 2 + flake.nix | 1 + 4 files changed, 56 insertions(+) create mode 100644 .github/workflows/docker-build-and-push.yaml diff --git a/.dockerignore b/.dockerignore index c6793398..40bf6298 100644 --- a/.dockerignore +++ b/.dockerignore @@ -10,3 +10,5 @@ flake.lock .task Taskfile.yaml README.md +.secrets +.ruff_cache diff --git a/.github/workflows/docker-build-and-push.yaml b/.github/workflows/docker-build-and-push.yaml new file mode 100644 index 00000000..aa7566d9 --- /dev/null +++ b/.github/workflows/docker-build-and-push.yaml @@ -0,0 +1,51 @@ +name: docker-build-and-push + +on: + push: + branches: + - "master" +# TODO: releases + +jobs: + docker: + runs-on: ubuntu-22.04 + strategy: + matrix: + dockerfile: [Dockerfile.cuda, Dockerfile.cpu] + include: + - dockerfile: Dockerfile.cuda + tag-prefix: cuda + - repository-name: Dockerfile.cpu + tag-prefix: cpu + steps: + - uses: actions/checkout@v4 + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - id: meta + uses: docker/metadata-action@v5 + with: + images: | + fedirz/speaches + # https://github.com/docker/metadata-action?tab=readme-ov-file#flavor-input + flavor: | + latest=false + prefix=${{ matrix.tag-prefix }} + tags: | + type=sha + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - name: Build and push + uses: docker/build-push-action@v5 + with: + context: . + file: ${{ matrix.dockerfile }} + # push: true + # TODO: multi-platform + # platforms: linux/amd64,linux/arm64 + tags: ${{ steps.meta.outputs.tags }} + # TODO: cache + # cache-from: type=registry,ref=fedirz/speaches:buildcache + # cache-to: type=registry,ref=fedirz/speaches:buildcache,mode=max diff --git a/.gitignore b/.gitignore index 7bcb774e..7e2c3701 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,5 @@ __pycache__ tests/data .direnv .task +.secrets +.ruff_cache diff --git a/flake.nix b/flake.nix index a7152ad0..ddd6b6e1 100644 --- a/flake.nix +++ b/flake.nix @@ -18,6 +18,7 @@ default = pkgs.mkShell { nativeBuildInputs = with pkgs; [ (with python311Packages; huggingface-hub) + act ffmpeg-full go-task lsyncd