Merge pull request #477 from Baltic-RCC/mk-triplets-test #80
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI - Build workers | |
| permissions: | |
| contents: read | |
| on: | |
| push: | |
| tags: | |
| - "v*" | |
| release: | |
| types: | |
| - published | |
| workflow_dispatch: | |
| inputs: | |
| version: | |
| description: 'Version tag for the release (e.g., v1.0.0)' | |
| required: true | |
| base_image_tag: | |
| description: 'Base image tag to use (e.g., latest, v1.0.0)' | |
| required: true | |
| default: 'latest' | |
| 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 | |
| echo "BASE_IMAGE_TAG=${{ github.event.inputs.base_image_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 with base image tag=${{ env.BASE_IMAGE_TAG }}" | |
| - name: Log in to Docker Hub | |
| uses: docker/login-action@v2 | |
| with: | |
| username: ${{ vars.DOCKER_USERNAME }} | |
| password: ${{ secrets.DOCKER_PASSWORD }} | |
| - name: Build worker image with specified base image | |
| run: | | |
| docker build . \ | |
| --file docker/Dockerfile \ | |
| --target ${{ env.WORKER_NAME }} \ | |
| --build-arg BASE_IMAGE=${{ vars.DOCKER_USERNAME }}/emfos-base:${{ env.BASE_IMAGE_TAG }} \ | |
| -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: Push versioned image | |
| run: | | |
| docker push ${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }} | |
| - name: Conditionally push latest tag | |
| shell: bash | |
| run: | | |
| if [[ "$IMAGE_TAG" == *-dev ]]; then | |
| docker push "${{ env.IMAGE_NAME }}:${{ env.LATEST_TAG }}" | |
| fi |