Repository navigation
v2.0.0 Multi-Arch-Tagging for Harbor & ECR
Release Notes - Multi-Architecture Manifest Action
Breaking Changes
Input Parameter Changes
❌ Removed: namespace
The namespace input has been removed and replaced with business-unit.
✅ Added: business-unit
The business-unit input is now required and replaces the old namespace parameter.
✅ Added: aws-account
The aws-account input is now available (optional, defaults to bisnow) for specifying which AWS account to use for ECR access.
Behavior Changes
Dual Registry Support
The action now creates manifests in both Harbor and ECR instead of just Harbor. This means:
- All architecture images must exist in both registries before manifests can be created
- Manifests are created in both registries simultaneously
- Verification checks both registries
Migration Guide
Step 1: Update Input Parameters
Before (Old Version):
- name: Create multi-arch manifests
uses: bisnow/github-actions-multi-arch-manifest@v1.0
with:
image-tag: ${{ inputs.image-tag || env.TAG }}
service-name: ${{ env.SERVICE_NAME }}
namespace: ${{ env.NAMESPACE }} # ❌ This no longer existsAfter (New Version):
- name: Create multi-arch manifests
uses: bisnow/github-actions-multi-arch-manifest@v2.0
with:
image-tag: ${{ inputs.image-tag || env.TAG }}
service-name: ${{ env.SERVICE_NAME }}
business-unit: ${{ env.BUSINESS_UNIT }} # ✅ Changed from namespace
aws-account: ${{ env.AWS_ACCOUNT || 'bisnow' }} # ✅ Optional, defaults to 'bisnow'Step 2: Update Environment Variables
If you're using environment variables, update them in your workflow:
Before:
env:
NAMESPACE: my-namespaceAfter:
env:
BUSINESS_UNIT: my-business-unit # Changed from NAMESPACE
AWS_ACCOUNT: bisnow # Optional, only if different from defaultStep 3: Ensure Images Exist in Both Registries
The action now requires images to exist in both Harbor and ECR. Make sure your build-and-push action is pushing to both registries:
Harbor Location:
harbor.bisnow.cloud/{business-unit}/{service-name}:{tag}-amd64
harbor.bisnow.cloud/{business-unit}/{service-name}:{tag}-arm64
ECR Location:
560285300220.dkr.ecr.us-east-1.amazonaws.com/{service-name}:{tag}-amd64
560285300220.dkr.ecr.us-east-1.amazonaws.com/{service-name}:{tag}-arm64
Step 4: Update Action Version
Update your action reference to the new major version:
# Old
uses: bisnow/github-actions-multi-arch-manifest@v1.0
# New
uses: bisnow/github-actions-multi-arch-manifest@v2.0Or pin to a specific version:
uses: bisnow/github-actions-multi-arch-manifest@v2.0.0Complete Migration Example
Before
name: Create Multi-Platform Manifest
runs-on: arc-runners-bisnow
needs: build-and-push
if: needs.build-and-push.result == 'success'
env:
TAG: dev-123
SERVICE_NAME: my-service
NAMESPACE: my-namespace
steps:
- name: Create multi-arch manifests
uses: bisnow/github-actions-multi-arch-manifest@v1.0
with:
image-tag: ${{ env.TAG }}
service-name: ${{ env.SERVICE_NAME }}
namespace: ${{ env.NAMESPACE }}After
name: Create Multi-Platform Manifest
runs-on: arc-runners-bisnow
needs: build-and-push
if: needs.build-and-push.result == 'success'
env:
TAG: dev-123
SERVICE_NAME: my-service
BUSINESS_UNIT: my-business-unit # Changed from NAMESPACE
AWS_ACCOUNT: bisnow # Optional, only if different from default
steps:
- name: Create multi-arch manifests
uses: bisnow/github-actions-multi-arch-manifest@v2.0
with:
image-tag: ${{ env.TAG }}
service-name: ${{ env.SERVICE_NAME }}
business-unit: ${{ env.BUSINESS_UNIT }} # Changed from namespace
aws-account: ${{ env.AWS_ACCOUNT || 'bisnow' }} # OptionalWhat's New
✨ Features
- Dual Registry Support: Creates manifests in both Harbor and ECR simultaneously
- Enhanced Verification: Verifies manifests in both registries
- Better Error Reporting: More detailed error messages showing status for both registries
🔧 Improvements
- More robust image verification with separate tracking for Harbor and ECR
- Comprehensive manifest verification for both registries
- Enhanced GitHub Step Summary with information for both registries
Troubleshooting
Error: "business-unit not provided"
Solution: Replace namespace input with business-unit in your workflow.
Error: "Timeout waiting for architecture images"
Solution: Ensure images exist in both Harbor and ECR with the correct naming:
- Harbor:
harbor.bisnow.cloud/{business-unit}/{service-name}:{tag}-{arch} - ECR:
560285300220.dkr.ecr.us-east-1.amazonaws.com/{service-name}:{tag}-{arch}
Error: ECR authentication failures
Solution: Ensure AWS credentials are available and the aws-account input is correct (or defaults to bisnow).
Need Help?
If you encounter issues during migration, please:
- Check that your build-and-push action is pushing to both registries
- Verify your
business-unitvalue matches your Harbor organization structure - Ensure AWS credentials are properly configured for ECR access