Skip to content

Presidio Docker Build #28

Presidio Docker Build

Presidio Docker Build #28

name: Presidio Docker Build
on:
push:
branches: [main]
workflow_dispatch:
env:
REGISTRY_NAME: ghcr.io # SDSC ADD-ON
USERNAME: ${{ github.repository_owner }}
TAG: gha${{ github.run_number }}
jobs:
build-platform-images:
name: Build presidio images.
runs-on: ubuntu-latest
steps:
- name: Checkout current repo
uses: actions/checkout@v5
- uses: ./.github/actions/setup-nix
- name: Apply patches
working-directory: presidio
run: just external::patch
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
# SDSC ADD-ON
# https://github.com/docker/login-action
- name: Log in to the Container registry
uses: docker/login-action@v3.0.0
with:
registry: ${{ env.REGISTRY_NAME }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and Push ${{ matrix.image }} for ${{ matrix.platform }}
run: |
# Create platform-specific tag
PLATFORM_TAG=$(echo "${{ matrix.platform }}" | sed 's/\//-/g')
cd external/repos/presidio
docker buildx build \
--platform ${{ matrix.platform }} \
--push \
--tag ${{ env.REGISTRY_NAME }}/${{ env.USERNAME }}/${{ matrix.image }}:${{ env.TAG }}-${PLATFORM_TAG} \
--cache-from type=registry,ref=${{ env.REGISTRY_NAME }}/${{ env.USERNAME }}/${{ matrix.image }}:latest \
--cache-to type=inline \
./${{ matrix.image }}
create-manifests:
name: Create Multi-Platform Manifests
runs-on: ubuntu-latest
needs: build-platform-images
steps:
# SDSC ADD-ON
# https://github.com/docker/login-action
- name: Log in to the Container registry
uses: docker/login-action@v3.0.0
with:
registry: ${{ env.REGISTRY_NAME }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Create all multi-platform manifests
run: |
IMAGES=("presidio-anonymizer" "presidio-analyzer")
for image in "${IMAGES[@]}"; do
echo "Creating manifest for $image"
docker buildx imagetools create \
--tag ${{ env.REGISTRY_NAME }}/${{ env.USERNAME }}/${image}:${{ env.TAG }} \
${{ env.REGISTRY_NAME }}/${{ env.USERNAME }}/${image}:${{ env.TAG }}-linux-amd64
done