ci: syntax bugfix #3
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 | |
| 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 |