@@ -349,10 +349,9 @@ jobs:
349349 echo "🔍 git diff --name-only against HEAD (if any):"
350350 git diff --name-only || true
351351
352- # When publishing we always allow dirty state for Cargo.lock differences that appear
353- # during build/packaging steps (this prevents transient lockfile updates from blocking publish)
354- echo "⚠️ Publishing with --allow-dirty to tolerate transient changes to Cargo.lock"
352+ # Always allow dirty to tolerate Cargo.lock updates that occur during publish packaging
355353 DIRTY_FLAG="--allow-dirty"
354+ echo "⚠️ Using --allow-dirty to avoid Cargo.lock churn blocking publish"
356355
357356 # Publish to crates.io (dry-run already validated in Gate 7)
358357 cargo publish $DIRTY_FLAG || (echo "❌ cargo publish failed"; exit 1)
@@ -366,16 +365,19 @@ jobs:
366365 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
367366 run : |
368367 echo "🐳 Building and pushing Docker image to GitHub Container Registry..."
368+
369+ # GHCR requires lowercase repository names
370+ GHCR_REPO=$(echo "${{ github.repository }}" | tr '[:upper:]' '[:lower:]')
369371
370372 # Login to GHCR
371373 echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u ${{ github.actor }} --password-stdin
372374
373375 # Build the Docker image
374- docker build -f deploy/Dockerfile -t ghcr.io/${{ github.repository }} :${{ github.ref_name }} -t ghcr.io/${{ github.repository } }:latest .
376+ docker build -f deploy/Dockerfile -t ghcr.io/${GHCR_REPO} :${{ github.ref_name }} -t ghcr.io/${GHCR_REPO }:latest .
375377
376378 # Push both tagged and latest versions
377- docker push ghcr.io/${{ github.repository } }:${{ github.ref_name }}
378- docker push ghcr.io/${{ github.repository } }:latest
379+ docker push ghcr.io/${GHCR_REPO }:${{ github.ref_name }}
380+ docker push ghcr.io/${GHCR_REPO }:latest
379381
380382 echo "✅ Docker image published successfully!"
381- echo "🐳 Users can now run: docker run ghcr.io/${{ github.repository } }:latest"
383+ echo "🐳 Users can now run: docker run ghcr.io/${GHCR_REPO }:latest"
0 commit comments