Skip to content

fix: if condition in action #9

fix: if condition in action

fix: if condition in action #9

name: Presidio Docker Build
on:
push:
# pull_request: # Future run on main pushes only.
# branches: [ main ]
workflow_dispatch:
# concurrency:
# group: ${{ github.workflow }}-${{ github.ref }}
# cancel-in-progress: true
permissions: read-all
env:
REGISTRY_NAME: ghcr.io # SDSC ADD-ON
TAG: gha${{ github.run_number }}
jobs:
build-platform-images:
name: Build ${{ matrix.image }} (${{ matrix.platform }})
runs-on: ${{ matrix.runner }}
permissions:
id-token: write
contents: read
strategy:
matrix:
include:
- image: presidio-anonymizer
platform: linux/amd64
runner: ubuntu-latest
- image: presidio-analyzer
platform: linux/amd64
runner: ubuntu-latest
- image: presidio-image-redactor
platform: linux/amd64
runner: ubuntu-latest
- image: presidio-anonymizer
platform: linux/arm64
runner: ubuntu-24.04-arm
- image: presidio-analyzer
platform: linux/arm64
runner: ubuntu-24.04-arm
- image: presidio-image-redactor
platform: linux/arm64
runner: ubuntu-24.04-arm
steps:
# SDSC ADD-ON
- name: Get latest Presidio release tag
id: presidio_release
run: |
tag=$(curl -s https://api.github.com/repos/microsoft/presidio/releases/latest | jq -r .tag_name)
echo "tag=$tag" >> $GITHUB_OUTPUT
# SDSC ADD-ON
- name: Checkout Presidio (latest release)
uses: actions/checkout@v5
with:
repository: microsoft/presidio
ref: ${{ steps.presidio_release.outputs.tag }}
- 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 }}
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')
docker buildx build \
--platform ${{ matrix.platform }} \
--push \
--tag ${{ env.REGISTRY_NAME }}/${{ matrix.image }}:${{ env.TAG }}-${PLATFORM_TAG} \
--cache-from type=registry,ref=${{ env.REGISTRY_NAME }}/public/${{ matrix.image }}:latest \
--cache-to type=inline \
./${{ matrix.image }}
env:
REGISTRY_NAME: ${{ env.REGISTRY_NAME }}
TAG: ${{ env.TAG }}
create-manifests:
name: Create Multi-Platform Manifests
runs-on: ubuntu-latest
needs: build-platform-images
permissions:
id-token: write
contents: read
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 }}
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" "presidio-image-redactor")
for image in "${IMAGES[@]}"; do
echo "Creating manifest for $image"
docker buildx imagetools create \
--tag ${{ env.REGISTRY_NAME }}/${image}:${{ env.TAG }} \
${{ env.REGISTRY_NAME }}/${image}:${{ env.TAG }}-linux-amd64 \
${{ env.REGISTRY_NAME }}/${image}:${{ env.TAG }}-linux-arm64
done
env:
REGISTRY_NAME: ${{ env.REGISTRY_NAME }}
TAG: ${{ env.TAG }}