Skip to content

Add Hanko SSO Authentication #448

Add Hanko SSO Authentication

Add Hanko SSO Authentication #448

Workflow file for this run

name: Build Docker Images
on:
push:
branches:
- master
- develop
paths:
- "backend/**"
- ".github/workflows/docker_build.yml"
pull_request:
branches:
- master
- develop
paths:
- "backend/**"
- ".github/workflows/docker_build.yml"
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}
jobs:
build-and-push-api-image:
runs-on: ubuntu-24.04
permissions:
contents: read
packages: write
steps:
- name: Remove unnecessary files
run: |
sudo rm -rf /usr/share/dotnet
sudo rm -rf "$AGENT_TOOLSDIRECTORY"
- uses: actions/checkout@v5
- name: Log in to the Container registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata (tags, labels) for API Docker
id: meta_api
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ github.repository_owner }}/fair-api
tags: |
type=ref,event=branch
type=ref,event=tag
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build and push API Docker image
uses: docker/build-push-action@v6
with:
context: backend/
file: backend/Dockerfile.API
platforms: linux/amd64
provenance: false
sbom: false
push: false
tags: ${{ steps.meta_api.outputs.tags }}
labels: ${{ steps.meta_api.outputs.labels }}
cache-from: type=gha,scope=api,timeout=20m
cache-to: type=gha,mode=max,scope=api,timeout=20m,ignore-error=true
github-token: ${{ secrets.GITHUB_TOKEN }}
build-and-push-worker-image:
needs: build-and-push-api-image
runs-on: ubuntu-24.04
strategy:
matrix:
build_type: [cpu, gpu]
permissions:
contents: read
packages: write
steps:
- name: Remove unnecessary files
run: |
sudo rm -rf /usr/share/dotnet
sudo rm -rf "$AGENT_TOOLSDIRECTORY"
- uses: actions/checkout@v5
- name: Log in to the Container registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata (tags, labels) for Worker Docker
id: meta_worker
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ github.repository_owner }}/fair-worker
tags: |
type=ref,event=branch,suffix=-${{ matrix.build_type }}
type=ref,event=tag,suffix=-${{ matrix.build_type }}
type=semver,pattern={{version}},suffix=-${{ matrix.build_type }}
type=semver,pattern={{major}}.{{minor}},suffix=-${{ matrix.build_type }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build and push Worker Docker image (${{ matrix.build_type }})
uses: docker/build-push-action@v6
with:
context: backend/
file: backend/Dockerfile.workers
platforms: linux/amd64
provenance: false
sbom: false
push: false
build-args: |
BUILD_TYPE=${{ matrix.build_type }}
tags: ${{ steps.meta_worker.outputs.tags }}
labels: ${{ steps.meta_worker.outputs.labels }}
cache-from: type=gha,scope=docker-worker-${{ matrix.build_type }},timeout=20m
cache-to: type=gha,mode=min,scope=docker-worker-${{ matrix.build_type }},timeout=20m,ignore-error=true
github-token: ${{ secrets.GITHUB_TOKEN }}
build-and-push-offline-predictor-image:
runs-on: ubuntu-24.04
needs: build-and-push-api-image
permissions:
contents: read
packages: write
steps:
- name: Remove unnecessary files
run: |
sudo rm -rf /usr/share/dotnet
sudo rm -rf "$AGENT_TOOLSDIRECTORY"
- uses: actions/checkout@v5
- name: Log in to the Container registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata (tags, labels) for Offline Predictor Docker
id: meta_offline_predictor
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ github.repository_owner }}/fair-offline-predictor
tags: |
type=ref,event=branch
type=ref,event=tag
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build and push Offline Predictor Docker image
uses: docker/build-push-action@v6
with:
context: backend/
file: backend/Dockerfile.API
platforms: linux/amd64
provenance: false
sbom: false
push: false
build-args: |
BUILD_TARGET=predictor
tags: ${{ steps.meta_offline_predictor.outputs.tags }}
labels: ${{ steps.meta_offline_predictor.outputs.labels }}
cache-from: type=gha,scope=offline-predictor,timeout=20m
cache-to: type=gha,mode=max,scope=offline-predictor,timeout=20m,ignore-error=true
github-token: ${{ secrets.GITHUB_TOKEN }}