name: Reusable Docker Build on: workflow_call: inputs: dockerfile: required: true type: string image_name: required: true type: string secrets: REGISTRY_USER: required: true REGISTRY_PASSWORD: required: true READ_REPOSITORY_TOKEN: required: true outputs: image_ref: description: "The full image reference with tag" value: ${{ jobs.build.outputs.image_ref }} jobs: build: runs-on: docker-build outputs: image_ref: ${{ steps.vars.outputs.image_ref }} steps: - name: Checkout uses: actions/checkout@v4 - name: Prepare vars id: vars run: | REGISTRY="gitea.rellet.ir" TAG="${GITHUB_SHA:0:7}" IMAGE_REF="$REGISTRY/${{ inputs.image_name }}:$TAG" IMAGE_LATEST="$REGISTRY/${{ inputs.image_name }}:latest" echo "image_ref=$IMAGE_REF" >> $GITHUB_OUTPUT echo "image_latest=$IMAGE_LATEST" >> $GITHUB_OUTPUT - name: Login run: | echo "${{ secrets.REGISTRY_PASSWORD }}" | docker login gitea.rellet.ir \ -u "${{ secrets.REGISTRY_USER }}" \ --password-stdin - name: Build and Push run: | docker buildx build \ -f ${{ inputs.dockerfile }} \ -t ${{ steps.vars.outputs.image_ref }} \ -t ${{ steps.vars.outputs.image_latest }} \ --push \ .