Skip to content

chore(CI): Limit parallel jobs and maximize build space #2

chore(CI): Limit parallel jobs and maximize build space

chore(CI): Limit parallel jobs and maximize build space #2

name: docker_publish
# Controls when the action will run.
on:
# Triggers the workflow on push or pull request events but only for the main branch
push:
branches:
- 'master'
tags:
- '*'
pull_request:
branches:
- 'master'
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build-and-push:
# The type of runner that the job will run on
runs-on: ubuntu-latest
strategy:
fail-fast: true
max-parallel: 1 # only one job at a time
matrix:
lang: ["en", "ja"]
model: [
"base",
"large-v2"
]
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
- name: Maximize build space
uses: easimon/maximize-build-space@master
with:
remove-dotnet: 'true'
remove-android: 'true'
remove-haskell: 'true'
remove-codeql: 'true'
- name: Checkout
uses: actions/checkout@v3
with:
submodules: true
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Docker meta data:${{ matrix.model }}-${{ matrix.lang }}
id: meta
uses: docker/metadata-action@v4
with:
images: ${{ secrets.DOCKERHUB_USERNAME }}/${{ github.event.repository.name }},ghcr.io/${{ github.repository }}
flavor: |
latest=${{ matrix.model == 'base' && matrix.lang == 'en' }}
prefix=
suffix=
tags: |
${{ matrix.model}}-${{ matrix.lang }}
# Create a Access Token and save it as as Actions secret
# https://hub.docker.com/settings/security
# DOCKERHUB_USERNAME
# DOCKERHUB_TOKEN
- name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
# Create a Access Token with `read:packages` and `write:packages` scopes
# CR_PAT
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.CR_PAT }}
- name: Build and push:${{ matrix.model }}-${{ matrix.lang }}
uses: docker/build-push-action@v4
with:
context: .
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max
build-args: |
WHISPER_MODEL=${{ matrix.model }}
LANG=${{ matrix.lang }}