Skip to content

Commit d2b1cf9

Browse files
authored
Merge pull request #433 from devstress/copilot/update-release-workflows
Consolidate release validation: Remove duplicate ReleasePackagesTesting Aspire project, use ObservabilityTesting
2 parents eee771b + 4755774 commit d2b1cf9

11 files changed

Lines changed: 72 additions & 1006 deletions

File tree

.github/workflows/release-major.yml

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -410,7 +410,8 @@ jobs:
410410
VERSION=${{ needs.calculate-version.outputs.new_version }}
411411
gunzip -c ./docker/jobgateway-$VERSION.tar.gz | docker load
412412
docker tag ${{ env.DOCKER_IMAGE_NAME }}:$VERSION ${{ env.DOCKER_IMAGE_NAME }}:latest
413-
echo "Loaded Docker image for version $VERSION and tagged as latest"
413+
docker tag ${{ env.DOCKER_IMAGE_NAME }}:$VERSION flinkdotnet-gateway:local
414+
echo "Loaded Docker image for version $VERSION and tagged as latest and flinkdotnet-gateway:local"
414415
415416
- name: Configure system for optimal performance
416417
run: |
@@ -429,9 +430,14 @@ jobs:
429430
docker info
430431
docker ps -a
431432
432-
- name: Build ReleasePackagesTesting solution
433+
- name: Build ReleasePackagesTesting solution (uses ObservabilityTesting.FlinkSqlAppHost)
434+
env:
435+
SKIP_DOCKER_BUILD: "true"
436+
RELEASE_VALIDATION_MODE: "PreRelease"
433437
run: |
434438
echo "🔨 Building ReleasePackagesTesting solution..."
439+
echo " SKIP_DOCKER_BUILD=true (using pre-built Docker image from artifacts)"
440+
echo " RELEASE_VALIDATION_MODE=PreRelease (using flinkdotnet-gateway:local image)"
435441
dotnet restore ReleasePackagesTesting/ReleasePackagesTesting.sln
436442
dotnet build ReleasePackagesTesting/ReleasePackagesTesting.sln --configuration Release --no-restore
437443
@@ -441,6 +447,7 @@ jobs:
441447
DOTNET_ENVIRONMENT: Testing
442448
ASPIRE_ALLOW_UNSECURED_TRANSPORT: "true"
443449
DOCKER_HOST: "unix:///var/run/docker.sock"
450+
SKIP_DOCKER_BUILD: "true"
444451
RELEASE_VALIDATION_MODE: "PreRelease"
445452
run: |
446453
echo "=== Running Pre-Release Validation Tests ==="
@@ -687,7 +694,7 @@ jobs:
687694
echo "Pulling Docker image from Docker Hub..."
688695
docker pull ${{ env.DOCKER_IMAGE_NAME }}:$VERSION
689696
docker tag ${{ env.DOCKER_IMAGE_NAME }}:$VERSION ${{ env.DOCKER_IMAGE_NAME }}:latest
690-
echo "✅ Docker image pulled from Docker Hub"
697+
echo "✅ Docker image pulled from Docker Hub and tagged as latest"
691698
692699
- name: Configure system for optimal performance
693700
run: |
@@ -706,9 +713,14 @@ jobs:
706713
docker info
707714
docker ps -a
708715
709-
- name: Build ReleasePackagesTesting solution
716+
- name: Build ReleasePackagesTesting solution (uses ObservabilityTesting.FlinkSqlAppHost)
717+
env:
718+
SKIP_DOCKER_BUILD: "true"
719+
RELEASE_VALIDATION_MODE: "PostRelease"
710720
run: |
711721
echo "🔨 Building ReleasePackagesTesting solution..."
722+
echo " SKIP_DOCKER_BUILD=true (using published Docker image from Docker Hub)"
723+
echo " RELEASE_VALIDATION_MODE=PostRelease (using devstress/flinkdotnet:latest image)"
712724
dotnet restore ReleasePackagesTesting/ReleasePackagesTesting.sln
713725
dotnet build ReleasePackagesTesting/ReleasePackagesTesting.sln --configuration Release --no-restore
714726
@@ -718,6 +730,7 @@ jobs:
718730
DOTNET_ENVIRONMENT: Testing
719731
ASPIRE_ALLOW_UNSECURED_TRANSPORT: "true"
720732
DOCKER_HOST: "unix:///var/run/docker.sock"
733+
SKIP_DOCKER_BUILD: "true"
721734
RELEASE_VALIDATION_MODE: "PostRelease"
722735
run: |
723736
echo "=== Running Post-Release Validation Tests ==="

.github/workflows/release-minor.yml

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -410,7 +410,8 @@ jobs:
410410
VERSION=${{ needs.calculate-version.outputs.new_version }}
411411
gunzip -c ./docker/jobgateway-$VERSION.tar.gz | docker load
412412
docker tag ${{ env.DOCKER_IMAGE_NAME }}:$VERSION ${{ env.DOCKER_IMAGE_NAME }}:latest
413-
echo "Loaded Docker image for version $VERSION and tagged as latest"
413+
docker tag ${{ env.DOCKER_IMAGE_NAME }}:$VERSION flinkdotnet-gateway:local
414+
echo "Loaded Docker image for version $VERSION and tagged as latest and flinkdotnet-gateway:local"
414415
415416
- name: Configure system for optimal performance
416417
run: |
@@ -429,9 +430,14 @@ jobs:
429430
docker info
430431
docker ps -a
431432
432-
- name: Build ReleasePackagesTesting solution
433+
- name: Build ReleasePackagesTesting solution (uses ObservabilityTesting.FlinkSqlAppHost)
434+
env:
435+
SKIP_DOCKER_BUILD: "true"
436+
RELEASE_VALIDATION_MODE: "PreRelease"
433437
run: |
434438
echo "🔨 Building ReleasePackagesTesting solution..."
439+
echo " SKIP_DOCKER_BUILD=true (using pre-built Docker image from artifacts)"
440+
echo " RELEASE_VALIDATION_MODE=PreRelease (using flinkdotnet-gateway:local image)"
435441
dotnet restore ReleasePackagesTesting/ReleasePackagesTesting.sln
436442
dotnet build ReleasePackagesTesting/ReleasePackagesTesting.sln --configuration Release --no-restore
437443
@@ -441,6 +447,7 @@ jobs:
441447
DOTNET_ENVIRONMENT: Testing
442448
ASPIRE_ALLOW_UNSECURED_TRANSPORT: "true"
443449
DOCKER_HOST: "unix:///var/run/docker.sock"
450+
SKIP_DOCKER_BUILD: "true"
444451
RELEASE_VALIDATION_MODE: "PreRelease"
445452
run: |
446453
echo "=== Running Pre-Release Validation Tests ==="
@@ -687,7 +694,7 @@ jobs:
687694
echo "Pulling Docker image from Docker Hub..."
688695
docker pull ${{ env.DOCKER_IMAGE_NAME }}:$VERSION
689696
docker tag ${{ env.DOCKER_IMAGE_NAME }}:$VERSION ${{ env.DOCKER_IMAGE_NAME }}:latest
690-
echo "✅ Docker image pulled from Docker Hub"
697+
echo "✅ Docker image pulled from Docker Hub and tagged as latest"
691698
692699
- name: Configure system for optimal performance
693700
run: |
@@ -706,9 +713,14 @@ jobs:
706713
docker info
707714
docker ps -a
708715
709-
- name: Build ReleasePackagesTesting solution
716+
- name: Build ReleasePackagesTesting solution (uses ObservabilityTesting.FlinkSqlAppHost)
717+
env:
718+
SKIP_DOCKER_BUILD: "true"
719+
RELEASE_VALIDATION_MODE: "PostRelease"
710720
run: |
711721
echo "🔨 Building ReleasePackagesTesting solution..."
722+
echo " SKIP_DOCKER_BUILD=true (using published Docker image from Docker Hub)"
723+
echo " RELEASE_VALIDATION_MODE=PostRelease (using devstress/flinkdotnet:latest image)"
712724
dotnet restore ReleasePackagesTesting/ReleasePackagesTesting.sln
713725
dotnet build ReleasePackagesTesting/ReleasePackagesTesting.sln --configuration Release --no-restore
714726
@@ -718,6 +730,7 @@ jobs:
718730
DOTNET_ENVIRONMENT: Testing
719731
ASPIRE_ALLOW_UNSECURED_TRANSPORT: "true"
720732
DOCKER_HOST: "unix:///var/run/docker.sock"
733+
SKIP_DOCKER_BUILD: "true"
721734
RELEASE_VALIDATION_MODE: "PostRelease"
722735
run: |
723736
echo "=== Running Post-Release Validation Tests ==="

.github/workflows/release-patch.yml

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -410,7 +410,8 @@ jobs:
410410
VERSION=${{ needs.calculate-version.outputs.new_version }}
411411
gunzip -c ./docker/jobgateway-$VERSION.tar.gz | docker load
412412
docker tag ${{ env.DOCKER_IMAGE_NAME }}:$VERSION ${{ env.DOCKER_IMAGE_NAME }}:latest
413-
echo "Loaded Docker image for version $VERSION and tagged as latest"
413+
docker tag ${{ env.DOCKER_IMAGE_NAME }}:$VERSION flinkdotnet-gateway:local
414+
echo "Loaded Docker image for version $VERSION and tagged as latest and flinkdotnet-gateway:local"
414415
415416
- name: Configure system for optimal performance
416417
run: |
@@ -429,9 +430,14 @@ jobs:
429430
docker info
430431
docker ps -a
431432
432-
- name: Build ReleasePackagesTesting solution
433+
- name: Build ReleasePackagesTesting solution (uses ObservabilityTesting.FlinkSqlAppHost)
434+
env:
435+
SKIP_DOCKER_BUILD: "true"
436+
RELEASE_VALIDATION_MODE: "PreRelease"
433437
run: |
434438
echo "🔨 Building ReleasePackagesTesting solution..."
439+
echo " SKIP_DOCKER_BUILD=true (using pre-built Docker image from artifacts)"
440+
echo " RELEASE_VALIDATION_MODE=PreRelease (using flinkdotnet-gateway:local image)"
435441
dotnet restore ReleasePackagesTesting/ReleasePackagesTesting.sln
436442
dotnet build ReleasePackagesTesting/ReleasePackagesTesting.sln --configuration Release --no-restore
437443
@@ -441,6 +447,7 @@ jobs:
441447
DOTNET_ENVIRONMENT: Testing
442448
ASPIRE_ALLOW_UNSECURED_TRANSPORT: "true"
443449
DOCKER_HOST: "unix:///var/run/docker.sock"
450+
SKIP_DOCKER_BUILD: "true"
444451
RELEASE_VALIDATION_MODE: "PreRelease"
445452
run: |
446453
echo "=== Running Pre-Release Validation Tests ==="
@@ -687,7 +694,7 @@ jobs:
687694
echo "Pulling Docker image from Docker Hub..."
688695
docker pull ${{ env.DOCKER_IMAGE_NAME }}:$VERSION
689696
docker tag ${{ env.DOCKER_IMAGE_NAME }}:$VERSION ${{ env.DOCKER_IMAGE_NAME }}:latest
690-
echo "✅ Docker image pulled from Docker Hub"
697+
echo "✅ Docker image pulled from Docker Hub and tagged as latest"
691698
692699
- name: Configure system for optimal performance
693700
run: |
@@ -706,9 +713,14 @@ jobs:
706713
docker info
707714
docker ps -a
708715
709-
- name: Build ReleasePackagesTesting solution
716+
- name: Build ReleasePackagesTesting solution (uses ObservabilityTesting.FlinkSqlAppHost)
717+
env:
718+
SKIP_DOCKER_BUILD: "true"
719+
RELEASE_VALIDATION_MODE: "PostRelease"
710720
run: |
711721
echo "🔨 Building ReleasePackagesTesting solution..."
722+
echo " SKIP_DOCKER_BUILD=true (using published Docker image from Docker Hub)"
723+
echo " RELEASE_VALIDATION_MODE=PostRelease (using devstress/flinkdotnet:latest image)"
712724
dotnet restore ReleasePackagesTesting/ReleasePackagesTesting.sln
713725
dotnet build ReleasePackagesTesting/ReleasePackagesTesting.sln --configuration Release --no-restore
714726
@@ -718,6 +730,7 @@ jobs:
718730
DOTNET_ENVIRONMENT: Testing
719731
ASPIRE_ALLOW_UNSECURED_TRANSPORT: "true"
720732
DOCKER_HOST: "unix:///var/run/docker.sock"
733+
SKIP_DOCKER_BUILD: "true"
721734
RELEASE_VALIDATION_MODE: "PostRelease"
722735
run: |
723736
echo "=== Running Post-Release Validation Tests ==="

ObservabilityTesting/ObservabilityTesting.FlinkSqlAppHost/Program.cs

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -248,11 +248,22 @@
248248
// 7. FlinkDotNet JobGateway - FlinkDotNet job submission endpoint (using pre-built Docker image)
249249
Console.WriteLine("[INFO] Configuring FlinkDotNet JobGateway from pre-built Docker image...");
250250

251-
const string gatewayImageTag = "flinkdotnet-gateway:local";
251+
// Determine which Docker image to use based on RELEASE_VALIDATION_MODE
252+
// - "PostRelease": Use published image from Docker Hub (devstress/flinkdotnet:latest)
253+
// - "PreRelease" or unset: Use local pre-built image (flinkdotnet-gateway:local)
254+
string releaseValidationMode = Environment.GetEnvironmentVariable("RELEASE_VALIDATION_MODE") ?? "";
255+
bool usePublishedImage = releaseValidationMode.Equals("PostRelease", StringComparison.OrdinalIgnoreCase);
256+
257+
string gatewayImageName = usePublishedImage ? "devstress/flinkdotnet" : "flinkdotnet-gateway";
258+
string gatewayImageTag = usePublishedImage ? "latest" : "local";
259+
260+
Console.WriteLine(usePublishedImage
261+
? $" [INFO] Using PUBLISHED Docker image: {gatewayImageName}:{gatewayImageTag} (RELEASE_VALIDATION_MODE=PostRelease)"
262+
: $" [INFO] Using LOCAL Docker image: {gatewayImageName}:{gatewayImageTag} (RELEASE_VALIDATION_MODE={releaseValidationMode})");
252263

253264
// Use AddContainer with pre-built image instead of PublishAsDockerFile
254265
// The Docker image is built as part of the AppHost build process (see .csproj BuildGatewayDockerImage target)
255-
builder.AddContainer("flinkdotnet-jobgateway", gatewayImageTag)
266+
builder.AddContainer("flinkdotnet-jobgateway", gatewayImageName, gatewayImageTag)
256267
.WithHttpEndpoint(targetPort: 8086, name: "gateway-http")
257268
// Note: Prometheus metrics are exposed on the same port (8086) via /metrics endpoint
258269
// No separate metrics port needed - prometheus-net.AspNetCore uses the main HTTP server
@@ -268,7 +279,7 @@
268279
.WaitFor(prometheus) // Ensure Prometheus is ready to scrape Gateway metrics
269280
.WithLifetime(ContainerLifetime.Persistent);
270281

271-
Console.WriteLine($" [INFO] FlinkDotNet JobGateway will use pre-built Docker image: {gatewayImageTag}");
282+
Console.WriteLine($" [INFO] FlinkDotNet JobGateway configured with Docker image: {gatewayImageName}:{gatewayImageTag}");
272283

273284
Console.WriteLine("[INFO] All services configured successfully");
274285
Console.WriteLine($" - Kafka: Port {Ports.KafkaExternalPort}");

ReleasePackagesTesting/ReleasePackagesTesting.FlinkSqlAppHost/GlobalSuppressions.cs

Lines changed: 0 additions & 7 deletions
This file was deleted.

ReleasePackagesTesting/ReleasePackagesTesting.FlinkSqlAppHost/MemoryCalculator.cs

Lines changed: 0 additions & 149 deletions
This file was deleted.

0 commit comments

Comments
 (0)