LibreTranslate/.github/workflows/publish-docker.yml

74 lines
2.3 KiB
YAML
Raw Normal View History

2022-03-29 23:07:12 +00:00
name: Build and Publish Docker Image
on:
push:
branches:
- main
tags:
- v*
jobs:
main:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
2022-03-29 23:07:12 +00:00
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
2022-03-29 23:07:12 +00:00
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
2022-03-29 23:07:12 +00:00
- name: Login to Docker Hub
uses: docker/login-action@v3
2022-03-29 23:07:12 +00:00
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Get Variables
id: get-variables
run: |
echo ::set-output name=version::${GITHUB_REF#refs/tags/}
echo ::set-output name=gh-username-lower::$(echo ${{ github.repository_owner }} | tr '[:upper:]' '[:lower:]')
2022-03-29 23:07:12 +00:00
- name: Build and push Image
uses: docker/build-push-action@v5
2022-03-29 23:07:12 +00:00
with:
2023-01-15 17:14:04 +00:00
file: ./docker/Dockerfile
2022-12-11 05:55:27 +00:00
platforms: linux/amd64,linux/arm64
2023-01-23 16:09:53 +00:00
tags: ${{ steps.get-variables.outputs.gh-username-lower }}/libretranslate:${{ env.TAG }}
2022-03-29 23:07:12 +00:00
push: true
cache-from: type=gha
cache-to: type=gha,mode=max
env:
TAG: ${{ startsWith(github.ref, 'refs/tags/') && steps.get-variables.outputs.version || 'latest' }}
2023-04-02 17:03:06 +00:00
2023-11-16 20:43:47 +00:00
- name: Free Disk Space (Ubuntu)
uses: jlumbroso/free-disk-space@main
with:
# this might remove tools that are actually needed,
# if set to "true" but frees about 6 GB
tool-cache: false
# all of these default to true, but feel free to set to
# "false" if necessary for your workflow
android: true
dotnet: true
haskell: true
large-packages: true
docker-images: true
swap-storage: true
2023-04-02 17:03:06 +00:00
- name: Build and push Cuda Image
uses: docker/build-push-action@v5
2023-04-02 17:03:06 +00:00
with:
file: ./docker/cuda.Dockerfile
platforms: linux/amd64
2023-04-02 17:03:06 +00:00
tags: ${{ steps.get-variables.outputs.gh-username-lower }}/libretranslate:${{ env.TAG }}-cuda
push: true
cache-from: type=gha
cache-to: type=gha,mode=max
env:
TAG: ${{ startsWith(github.ref, 'refs/tags/') && steps.get-variables.outputs.version || 'latest' }}