name: Build & Push Docker Image on: push: tags: ['v*'] workflow_dispatch: inputs: tag: description: 'Docker image tag (e.g. v8, latest)' required: false default: 'latest' jobs: build: runs-on: ubuntu-latest permissions: contents: read packages: write steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Login to Docker Hub uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Extract version tag id: meta run: | if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then echo "tag=${{ github.event.inputs.tag || 'latest' }}" >> $GITHUB_OUTPUT else echo "tag=${GITHUB_REF_NAME}" >> $GITHUB_OUTPUT fi - name: Build and Push uses: docker/build-push-action@v5 with: context: . push: true tags: | danielonyejesi/pediatric-ai-scribe-v3:${{ steps.meta.outputs.tag }} danielonyejesi/pediatric-ai-scribe-v3:latest cache-from: type=gha cache-to: type=gha,mode=max platforms: linux/amd64,linux/arm64 - name: Summary run: | echo "### Docker image published" >> $GITHUB_STEP_SUMMARY echo "- \`danielonyejesi/pediatric-ai-scribe-v3:${{ steps.meta.outputs.tag }}\`" >> $GITHUB_STEP_SUMMARY echo "- \`danielonyejesi/pediatric-ai-scribe-v3:latest\`" >> $GITHUB_STEP_SUMMARY