@@ -925,75 +925,123 @@ jobs:
925925 mkdir -p ~/.docker
926926 echo "Created Docker config directory: ~/.docker"
927927
928- - name : Login to Docker Hub
929- if : needs.PREPARE-job.outputs.dockerhub_available == 'true'
930- uses : redhat-actions/podman-login@v1
931- with :
932- registry : docker.io
933- username : ${{ vars.DOCKERHUB_USERNAME }}
934- password : ${{ secrets.DOCKERHUB_TOKEN }}
935-
936- - name : Tag and push to Docker Hub
928+ # ============================================
929+ # Docker Hub Push (Independent Operation)
930+ # ============================================
931+ - name : " [Docker Hub] Login and Push"
937932 if : needs.PREPARE-job.outputs.dockerhub_available == 'true'
933+ continue-on-error : true
938934 run : |
935+ set +e # Don't exit on errors to allow independent execution
936+ echo "=========================================="
937+ echo " Docker Hub Push Process"
938+ echo "=========================================="
939+
940+ # Login to Docker Hub
941+ echo "🔐 Logging into Docker Hub..."
942+ if podman login docker.io -u "${{ vars.DOCKERHUB_USERNAME }}" -p "${{ secrets.DOCKERHUB_TOKEN }}"; then
943+ echo "✓ Docker Hub login successful"
944+ else
945+ echo "✗ Docker Hub login failed"
946+ exit 1
947+ fi
948+
949+ # Tag and push
939950 image_tag="${{ steps.locate_and_load.outputs.image_tag }}"
940951 dockerhub_tag="${{ vars.DOCKERHUB_USERNAME }}/${DOCKERFILE_NAME}:${VERSION}"
941952
942- echo "Tagging image for Docker Hub:"
943- echo " Source: $image_tag"
944- echo " Target: $dockerhub_tag"
945-
946- podman tag "$image_tag" "$dockerhub_tag"
953+ echo ""
954+ echo "🏷️ Tagging image for Docker Hub:"
955+ echo " Source: $image_tag"
956+ echo " Target: $dockerhub_tag"
947957
948- echo "Pushing to Docker Hub..."
949- podman push "$dockerhub_tag"
958+ if podman tag "$image_tag" "$dockerhub_tag"; then
959+ echo "✓ Image tagged successfully"
960+ else
961+ echo "✗ Image tagging failed"
962+ exit 1
963+ fi
950964
951- echo "✓ Successfully pushed to Docker Hub: $dockerhub_tag"
952-
953- - name : Login to Quay.io
954- if : needs.PREPARE-job.outputs.quayio_available == 'true'
955- uses : redhat-actions/podman-login@v1
956- with :
957- registry : quay.io
958- username : ${{ vars.QUAYIO_USERNAME }}
959- password : ${{ secrets.QUAYIO_TOKEN }}
965+ echo ""
966+ echo "📤 Pushing to Docker Hub..."
967+ if podman push "$dockerhub_tag"; then
968+ echo "✅ Successfully pushed to Docker Hub: $dockerhub_tag"
969+ else
970+ echo "❌ Failed to push to Docker Hub"
971+ exit 1
972+ fi
960973
961- - name : Tag and push to Quay.io
974+ # ============================================
975+ # Quay.io Push (Independent Operation)
976+ # ============================================
977+ - name : " [Quay.io] Login and Push"
962978 if : needs.PREPARE-job.outputs.quayio_available == 'true'
979+ continue-on-error : true
963980 run : |
981+ set +e # Don't exit on errors to allow independent execution
982+ echo "=========================================="
983+ echo " Quay.io Push Process"
984+ echo "=========================================="
985+
986+ # Login to Quay.io
987+ echo "🔐 Logging into Quay.io..."
988+ if podman login quay.io -u "${{ vars.QUAYIO_USERNAME }}" -p "${{ secrets.QUAYIO_TOKEN }}"; then
989+ echo "✓ Quay.io login successful"
990+ else
991+ echo "✗ Quay.io login failed"
992+ exit 1
993+ fi
994+
995+ # Tag and push
964996 image_tag="${{ steps.locate_and_load.outputs.image_tag }}"
965997 quayio_tag="quay.io/${{ vars.QUAYIO_USERNAME }}/${DOCKERFILE_NAME}:${VERSION}"
966998
967- echo "Tagging image for Quay.io:"
968- echo " Source: $image_tag"
969- echo " Target: $quayio_tag"
970-
971- podman tag "$image_tag" "$quayio_tag"
999+ echo ""
1000+ echo "🏷️ Tagging image for Quay.io:"
1001+ echo " Source: $image_tag"
1002+ echo " Target: $quayio_tag"
9721003
973- echo "Pushing to Quay.io..."
974- podman push "$quayio_tag"
1004+ if podman tag "$image_tag" "$quayio_tag"; then
1005+ echo "✓ Image tagged successfully"
1006+ else
1007+ echo "✗ Image tagging failed"
1008+ exit 1
1009+ fi
9751010
976- echo "✓ Successfully pushed to Quay.io: $quayio_tag"
1011+ echo ""
1012+ echo "📤 Pushing to Quay.io..."
1013+ if podman push "$quayio_tag"; then
1014+ echo "✅ Successfully pushed to Quay.io: $quayio_tag"
1015+ else
1016+ echo "❌ Failed to push to Quay.io"
1017+ exit 1
1018+ fi
9771019
9781020 - name : Cleanup local images
9791021 if : always() && (needs.PREPARE-job.outputs.dockerhub_available == 'true' || needs.PREPARE-job.outputs.quayio_available == 'true')
9801022 run : |
1023+ echo "🧹 Cleaning up local images..."
9811024 image_tag="${{ steps.locate_and_load.outputs.image_tag }}"
9821025
9831026 # Remove original image
984- podman rmi "$image_tag" || true
1027+ echo "Removing base image: $image_tag"
1028+ podman rmi "$image_tag" 2>/dev/null || echo " (Base image already removed or not found)"
9851029
9861030 # Remove Docker Hub tagged image if it was created
9871031 if [ "${{ needs.PREPARE-job.outputs.dockerhub_available }}" = "true" ]; then
988- podman rmi "${{ vars.DOCKERHUB_USERNAME }}/${DOCKERFILE_NAME}:${VERSION}" || true
1032+ dockerhub_tag="${{ vars.DOCKERHUB_USERNAME }}/${DOCKERFILE_NAME}:${VERSION}"
1033+ echo "Removing Docker Hub tag: $dockerhub_tag"
1034+ podman rmi "$dockerhub_tag" 2>/dev/null || echo " (Docker Hub tag already removed or not found)"
9891035 fi
9901036
9911037 # Remove Quay.io tagged image if it was created
9921038 if [ "${{ needs.PREPARE-job.outputs.quayio_available }}" = "true" ]; then
993- podman rmi "quay.io/${{ vars.QUAYIO_USERNAME }}/${DOCKERFILE_NAME}:${VERSION}" || true
1039+ quayio_tag="quay.io/${{ vars.QUAYIO_USERNAME }}/${DOCKERFILE_NAME}:${VERSION}"
1040+ echo "Removing Quay.io tag: $quayio_tag"
1041+ podman rmi "$quayio_tag" 2>/dev/null || echo " (Quay.io tag already removed or not found)"
9941042 fi
9951043
996- echo "✓ Local images cleaned up "
1044+ echo "✅ Local image cleanup completed "
9971045
9981046
9991047
0 commit comments