Skip to content

chore: update tests.yml (#52) #57

chore: update tests.yml (#52)

chore: update tests.yml (#52) #57

Workflow file for this run

name: Create and publish a Docker image
on:
push:
branches:
- main
# Allow building/pushing on demand (e.g. before the first deploy).
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build-and-push-image:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout repository
uses: actions/checkout@v7
- name: Log in to GitHub Container Registry
uses: docker/login-action@v4
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v6
with:
images: ghcr.io/${{ github.repository }}
tags: |
type=raw,value=latest,enable={{is_default_branch}}
type=sha,prefix=sha-
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v4
- name: Build and push Docker image
uses: docker/build-push-action@v7
with:
context: .
file: Dockerfile
push: true
platforms: 'linux/amd64'
build-args: |
GIT_SHA=${{ github.sha }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-to: type=gha,mode=max
cache-from: type=gha
# The per-task runner image (docker/Dockerfile.task-runner): the target repo's
# toolchain image (transformers-quality) with serge layered on top, run as one
# pod per /tasks request when taskExecution.kubernetes is enabled. Published
# separately from the thin serge app image above; point
# taskExecution.kubernetes.image at ghcr.io/<repo>-task-runner:sha-<commit>.
build-and-push-task-runner:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout repository
uses: actions/checkout@v7
- name: Log in to GitHub Container Registry
uses: docker/login-action@v4
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v6
with:
images: ghcr.io/${{ github.repository }}-task-runner
tags: |
type=raw,value=latest,enable={{is_default_branch}}
type=sha,prefix=sha-
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v4
- name: Build and push task-runner image
uses: docker/build-push-action@v7
with:
context: .
file: docker/Dockerfile.task-runner
push: true
platforms: 'linux/amd64'
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-to: type=gha,mode=max
cache-from: type=gha
# The serge-egress forward proxy image (docker/Dockerfile.egress-proxy): a
# self-built tinyproxy on the Debian base, used as the allowlisting egress
# gateway for the per-task pods when taskExecution.kubernetes is enabled.
# Built in-house to avoid depending on an unofficial Docker Hub image; point
# taskExecution.kubernetes.egress.image at ghcr.io/<repo>-egress:sha-<commit>.
build-and-push-egress-proxy:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout repository
uses: actions/checkout@v7
- name: Log in to GitHub Container Registry
uses: docker/login-action@v4
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v6
with:
images: ghcr.io/${{ github.repository }}-egress
tags: |
type=raw,value=latest,enable={{is_default_branch}}
type=sha,prefix=sha-
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v4
- name: Build and push egress-proxy image
uses: docker/build-push-action@v7
with:
context: .
file: docker/Dockerfile.egress-proxy
push: true
platforms: 'linux/amd64'
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-to: type=gha,mode=max
cache-from: type=gha