fix(ci): add image tag fallback logic and code style fixes

- Add fallback to 'latest' tag when build fails
- Add fallback mechanism when pulling specific image tag fails
- Fix code style: move opening brace in ObjectInfo
- Remove unused comment in ObjectStorage
This commit is contained in:
2025-11-01 22:06:12 +01:00
parent 477522bc1e
commit fa28e3580a
3 changed files with 23 additions and 6 deletions

View File

@@ -832,8 +832,13 @@ jobs:
DEPLOYMENT_HOST="${{ env.DEPLOYMENT_HOST }}"
REGISTRY="${{ env.REGISTRY }}"
IMAGE_NAME="${{ env.IMAGE_NAME }}"
BUILD_RESULT="${{ needs.build.result }}"
IMAGE_TAG="${{ needs.build.outputs.image_tag || 'latest' }}"
if [ "$BUILD_RESULT" != "success" ]; then
IMAGE_TAG="latest"
fi
if [ -z "$IMAGE_TAG" ] || [ "$IMAGE_TAG" = "null" ]; then
IMAGE_TAG="latest"
fi
@@ -863,10 +868,22 @@ jobs:
--password-stdin || echo "⚠️ Registry login failed, continuing..."
echo "📥 Pulling image ${FULL_IMAGE}..."
docker pull ${FULL_IMAGE} || {
if ! docker pull ${FULL_IMAGE}; then
if [ "${IMAGE_TAG}" != "latest" ]; then
echo "⚠️ Failed to pull ${FULL_IMAGE}, falling back to :latest"
IMAGE_TAG="latest"
FULL_IMAGE="${REGISTRY}/${IMAGE_NAME}:${IMAGE_TAG}"
if docker pull ${FULL_IMAGE}; then
echo " Using fallback image ${FULL_IMAGE}"
else
echo "❌ Failed to pull fallback image ${FULL_IMAGE}"
exit 1
fi
else
echo "❌ Failed to pull image ${FULL_IMAGE}"
exit 1
}
fi
fi
# If docker-compose.yml doesn't exist, it will be created from repo
if [ ! -f docker-compose.yml ]; then

View File

@@ -3,7 +3,8 @@ declare(strict_types=1);
namespace App\Framework\Storage;
final readonly class ObjectInfo {
final readonly class ObjectInfo
{
public function __construct(
public string $bucket,
public string $key,

View File

@@ -10,7 +10,6 @@ interface ObjectStorage
public function head(string $bucket, string $key): ObjectInfo;
public function delete(string $bucket, string $key): void;
public function exists(string $bucket, string $key): bool;
// Links
public function url(string $bucket, string $key): ?string; // öffentlich, wenn möglich
public function temporaryUrl(string $bucket, string $key, \DateInterval $ttl, array $opts = []): string;