Skip to content

ci: syntax bugfix

ci: syntax bugfix #3

Workflow file for this run

name: CI Build workers
on:
push:
branches:
- mk-build-pipeline
tags:
- "v*"
release:
types:
- published
workflow_dispatch:
inputs:
version:
description: 'Version tag for the release (e.g., v1.0.0)'
required: true
jobs:
build_workers:
runs-on: ubuntu-latest
strategy:
matrix:
worker:
- emfos-model-retriever
# - emfos-local-model-retriever
# - emfos-model-validator
# - emfos-model-merger
# - emfos-task-generator
# - emfos-model-quality
steps:
- name: Checkout repository target ref
uses: actions/checkout@v4
- name: Set global variables
run: |
echo "WORKER_NAME=${{ matrix.worker }}" >> $GITHUB_ENV
# echo "BRANCH_NAME=${GITHUB_REF_NAME}" >> $GITHUB_ENV
# echo "IMAGE_TAG=$(date +%Y%m%d%H%M%S)" >> $GITHUB_ENV
echo "IMAGE_NAME=${{ vars.DOCKER_USERNAME }}/${{ matrix.worker }}" >> $GITHUB_ENV
echo "LATEST_TAG=latest" >> $GITHUB_ENV
- name: Compute IMAGE_TAG
id: meta
shell: bash
run: |
if [[ "${GITHUB_EVENT_NAME}" == "workflow_dispatch" ]]; then
# manual run: use the provided version
TAG="${{ inputs.version }}"
elif [[ "${GITHUB_REF_TYPE}" == "tag" ]]; then
# tag push: use the tag name
TAG="${GITHUB_REF_NAME}" # strip leading v (optional)
else
# branch push: dev-<sha> (change to "${GITHUB_REF_NAME}" if you prefer)
TAG="dev-${GITHUB_SHA::7}"
fi
echo "IMAGE_TAG=$TAG" >> "$GITHUB_ENV"
echo "Computed IMAGE_TAG=$TAG"
- name: Pull base image or fallback to build
run: |
docker pull ${{ vars.DOCKER_USERNAME }}/emfos-base:latest || \
docker build . \
--file docker/Dockerfile \
--target emfos-base \
-t ${{ vars.DOCKER_USERNAME }}/emfos-base:main
- name: Build worker image
run: |
docker build . \
--file docker/Dockerfile \
--target ${{ env.WORKER_NAME }} \
-t ${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }}
- name: Tag image as latest
run: |
docker tag ${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }} ${{ env.IMAGE_NAME }}:${{ env.LATEST_TAG }}
- name: Log in to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ vars.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Push versioned image
run: |
docker push ${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }}
- name: Conditionally push latest tag
shell: bash
run: |
if [[ "$BRANCH_NAME" == *-dev ]]; then
docker push "${{ env.IMAGE_NAME }}:${{ env.LATEST_TAG }}"
fi