Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 0 additions & 28 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,6 @@ jobs:
if: ${{ github.repository_owner == 'microsoft' }}
outputs:
skip_workflow: ${{ (steps.check_for_changes.outputs.no_changes == 'true' || steps.check_for_changes.outputs.only_changed == 'true') && 'true' || 'false' }}
VERSION_SUFFIX_OVERRIDE: ${{ steps.compute_version_suffix.outputs.VERSION_SUFFIX_OVERRIDE }}
EXTENSION_VERSION_OVERRIDE: ${{ steps.compute_version_suffix.outputs.EXTENSION_VERSION_OVERRIDE }}

steps:
- name: Checkout code
Expand All @@ -40,37 +38,11 @@ jobs:
with:
patterns_file: eng/testing/github-ci-trigger-patterns.txt

- id: compute_version_suffix
name: Compute version suffix for PRs
if: ${{ github.event_name == 'pull_request' }}
shell: pwsh
env:
# Use the pull request head SHA instead of GITHUB_SHA (which can be a merge commit)
PR_HEAD_SHA: ${{ github.event.pull_request.head.sha }}
PR_NUMBER: ${{ github.event.number }}
run: |
Write-Host "Determining VERSION_SUFFIX_OVERRIDE (PR only step)..."
if ([string]::IsNullOrWhiteSpace($Env:PR_HEAD_SHA)) {
Write-Error "PR_HEAD_SHA not set; cannot compute version suffix."
exit 1
}
$SHORT_SHA = $Env:PR_HEAD_SHA.Substring(0,8)
$VERSION_SUFFIX = "/p:VersionSuffix=pr.$($Env:PR_NUMBER).g$SHORT_SHA"
Write-Host "Computed VERSION_SUFFIX_OVERRIDE=$VERSION_SUFFIX"
"VERSION_SUFFIX_OVERRIDE=$VERSION_SUFFIX" | Out-File -FilePath $Env:GITHUB_OUTPUT -Append -Encoding utf8

$EXTENSION_VERSION = "99.0.$($Env:PR_NUMBER)"
Write-Host "Computed EXTENSION_VERSION_OVERRIDE=$EXTENSION_VERSION"
"EXTENSION_VERSION_OVERRIDE=$EXTENSION_VERSION" | Out-File -FilePath $Env:GITHUB_OUTPUT -Append -Encoding utf8

tests:
uses: ./.github/workflows/tests.yml
name: Tests
needs: [prepare_for_ci]
if: ${{ github.repository_owner == 'microsoft' && needs.prepare_for_ci.outputs.skip_workflow != 'true' }}
with:
versionOverrideArg: ${{ needs.prepare_for_ci.outputs.VERSION_SUFFIX_OVERRIDE }}
extensionVersionOverride: ${{ needs.prepare_for_ci.outputs.EXTENSION_VERSION_OVERRIDE }}

# This job is used for branch protection. It fails if any of the dependent jobs failed
results:
Expand Down
36 changes: 35 additions & 1 deletion .github/workflows/polyglot-validation/test-java-playground.sh
Original file line number Diff line number Diff line change
Expand Up @@ -57,10 +57,44 @@ echo ""

FAILED=()
PASSED=()
SKIPPED=()

# Packages that only produce prerelease versions (SuppressFinalPackageVersion=true) cannot be
# restored when the build is stabilized, because aspire restore requests stable versions.
# Skip these until the build infrastructure dynamically computes versions. See #15335.
# The "Aspire.Hosting" entry is included because its aspire.config.json transitively depends on
# Aspire.Hosting.Azure.Kubernetes, which is suppressed.
SKIP_PREVIEW_ONLY=(
"Aspire.Hosting"
"Aspire.Hosting.Azure.Kusto"
"Aspire.Hosting.Foundry"
"Aspire.Hosting.Keycloak"
"Aspire.Hosting.Kubernetes"
"Aspire.Hosting.Maui"
)

for app_dir in "${APP_DIRS[@]}"; do
integration_name="$(basename "$(dirname "$app_dir")")"

# Check if this integration is in the skip list
skip=false
for skip_pkg in "${SKIP_PREVIEW_ONLY[@]}"; do
if [ "$integration_name" = "$skip_pkg" ]; then
skip=true
break
fi
done

if [ "$skip" = true ]; then
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "Testing: $integration_name"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo " ⏭ Skipping (preview-only package, see #15335)"
SKIPPED+=("$integration_name")
echo ""
continue
fi

echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "Testing: $integration_name"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
Expand Down Expand Up @@ -104,7 +138,7 @@ done

echo ""
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "Results: ${#PASSED[@]} passed, ${#FAILED[@]} failed out of ${#APP_DIRS[@]} AppHosts"
echo "Results: ${#PASSED[@]} passed, ${#FAILED[@]} failed, ${#SKIPPED[@]} skipped out of ${#APP_DIRS[@]} AppHosts"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"

if [ ${#FAILED[@]} -gt 0 ]; then
Expand Down
36 changes: 35 additions & 1 deletion .github/workflows/polyglot-validation/test-python-playground.sh
Original file line number Diff line number Diff line change
Expand Up @@ -50,10 +50,44 @@ echo ""

FAILED=()
PASSED=()
SKIPPED=()

# Packages that only produce prerelease versions (SuppressFinalPackageVersion=true) cannot be
# restored when the build is stabilized, because aspire restore requests stable versions.
# Skip these until the build infrastructure dynamically computes versions. See #15335.
# The "Aspire.Hosting" entry is included because its aspire.config.json transitively depends on
# Aspire.Hosting.Azure.Kubernetes, which is suppressed.
SKIP_PREVIEW_ONLY=(
"Aspire.Hosting"
"Aspire.Hosting.Azure.Kusto"
"Aspire.Hosting.Foundry"
"Aspire.Hosting.Keycloak"
"Aspire.Hosting.Kubernetes"
"Aspire.Hosting.Maui"
)

for app_dir in "${APP_DIRS[@]}"; do
integration_name="$(basename "$(dirname "$app_dir")")"

# Check if this integration is in the skip list
skip=false
for skip_pkg in "${SKIP_PREVIEW_ONLY[@]}"; do
if [ "$integration_name" = "$skip_pkg" ]; then
skip=true
break
fi
done

if [ "$skip" = true ]; then
echo "----------------------------------------"
echo "Testing: $integration_name"
echo "----------------------------------------"
echo " -> Skipping (preview-only package, see #15335)"
SKIPPED+=("$integration_name")
echo ""
continue
fi

echo "----------------------------------------"
echo "Testing: $integration_name"
echo "----------------------------------------"
Expand Down Expand Up @@ -98,7 +132,7 @@ done

echo ""
echo "----------------------------------------"
echo "Results: ${#PASSED[@]} passed, ${#FAILED[@]} failed out of ${#APP_DIRS[@]} AppHosts"
echo "Results: ${#PASSED[@]} passed, ${#FAILED[@]} failed, ${#SKIPPED[@]} skipped out of ${#APP_DIRS[@]} AppHosts"
echo "----------------------------------------"

if [ ${#FAILED[@]} -gt 0 ]; then
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,10 +50,42 @@ echo ""

FAILED=()
PASSED=()
SKIPPED=()

# Packages that only produce prerelease versions (SuppressFinalPackageVersion=true) cannot be
# restored when the build is stabilized, because aspire restore requests stable versions.
# Skip these until the build infrastructure dynamically computes versions. See #15335.
SKIP_PREVIEW_ONLY=(
"Aspire.Hosting"
"Aspire.Hosting.Azure.Kusto"
"Aspire.Hosting.Foundry"
"Aspire.Hosting.Keycloak"
"Aspire.Hosting.Kubernetes"
"Aspire.Hosting.Maui"
)

for app_dir in "${APP_DIRS[@]}"; do
integration_name="$(basename "$(dirname "$app_dir")")"

# Check if this integration is in the skip list
skip=false
for skip_pkg in "${SKIP_PREVIEW_ONLY[@]}"; do
if [ "$integration_name" = "$skip_pkg" ]; then
skip=true
break
fi
done

if [ "$skip" = true ]; then
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "Testing: $integration_name"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo " ⏭ Skipping (preview-only package, see #15335)"
SKIPPED+=("$integration_name")
echo ""
continue
fi

echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "Testing: $integration_name"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
Expand Down Expand Up @@ -93,7 +125,7 @@ done

echo ""
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "Results: ${#PASSED[@]} passed, ${#FAILED[@]} failed out of ${#APP_DIRS[@]} AppHosts"
echo "Results: ${#PASSED[@]} passed, ${#FAILED[@]} failed, ${#SKIPPED[@]} skipped out of ${#APP_DIRS[@]} AppHosts"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"

if [ ${#FAILED[@]} -gt 0 ]; then
Expand Down
2 changes: 1 addition & 1 deletion eng/Versions.props
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<MicrosoftTestingPlatformVersion>2.2.1</MicrosoftTestingPlatformVersion>
<MicrosoftNETTestSdkVersion>17.14.1</MicrosoftNETTestSdkVersion>
<!-- Enable to remove prerelease label. -->
<StabilizePackageVersion Condition="'$(StabilizePackageVersion)' == ''">false</StabilizePackageVersion>
<StabilizePackageVersion Condition="'$(StabilizePackageVersion)' == ''">true</StabilizePackageVersion>
<DotNetFinalVersionKind Condition="'$(StabilizePackageVersion)' == 'true'">release</DotNetFinalVersionKind>
</PropertyGroup>
<PropertyGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,19 @@ namespace Aspire.Hosting
{
public static partial class AzureAppConfigurationExtensions
{
[AspireExport("addAzureAppConfiguration", Description = "Adds an Azure App Configuration resource")]
[AspireExport(Description = "Adds an Azure App Configuration resource")]
public static ApplicationModel.IResourceBuilder<Azure.AzureAppConfigurationResource> AddAzureAppConfiguration(this IDistributedApplicationBuilder builder, string name) { throw null; }

[AspireExport("runAsEmulator", Description = "Configures Azure App Configuration to run with the local emulator", RunSyncOnBackgroundThread = true)]
[AspireExport(Description = "Configures Azure App Configuration to run with the local emulator", RunSyncOnBackgroundThread = true)]
public static ApplicationModel.IResourceBuilder<Azure.AzureAppConfigurationResource> RunAsEmulator(this ApplicationModel.IResourceBuilder<Azure.AzureAppConfigurationResource> builder, System.Action<ApplicationModel.IResourceBuilder<Azure.AzureAppConfigurationEmulatorResource>>? configureEmulator = null) { throw null; }

[AspireExport("withDataBindMount", Description = "Adds a data bind mount for the App Configuration emulator")]
[AspireExport(Description = "Adds a data bind mount for the App Configuration emulator")]
public static ApplicationModel.IResourceBuilder<Azure.AzureAppConfigurationEmulatorResource> WithDataBindMount(this ApplicationModel.IResourceBuilder<Azure.AzureAppConfigurationEmulatorResource> builder, string? path = null) { throw null; }

[AspireExport("withDataVolume", Description = "Adds a data volume for the App Configuration emulator")]
[AspireExport(Description = "Adds a data volume for the App Configuration emulator")]
public static ApplicationModel.IResourceBuilder<Azure.AzureAppConfigurationEmulatorResource> WithDataVolume(this ApplicationModel.IResourceBuilder<Azure.AzureAppConfigurationEmulatorResource> builder, string? name = null) { throw null; }

[AspireExport("withHostPort", Description = "Sets the host port for the App Configuration emulator")]
[AspireExport(Description = "Sets the host port for the App Configuration emulator")]
public static ApplicationModel.IResourceBuilder<Azure.AzureAppConfigurationEmulatorResource> WithHostPort(this ApplicationModel.IResourceBuilder<Azure.AzureAppConfigurationEmulatorResource> builder, int? port) { throw null; }

[AspireExportIgnore(Reason = "AppConfigurationBuiltInRole is an Azure.Provisioning type not compatible with ATS. Use the AzureAppConfigurationRole-based overload instead.")]
Expand All @@ -40,7 +40,7 @@ public AzureAppConfigurationEmulatorResource(AzureAppConfigurationResource inner
public override ApplicationModel.ResourceAnnotationCollection Annotations { get { throw null; } }
}

public partial class AzureAppConfigurationResource : AzureProvisioningResource, ApplicationModel.IResourceWithConnectionString, ApplicationModel.IResource, ApplicationModel.IManifestExpressionProvider, ApplicationModel.IValueProvider, ApplicationModel.IValueWithReferences, ApplicationModel.IResourceWithEndpoints, IAzurePrivateEndpointTarget
public partial class AzureAppConfigurationResource : AzureProvisioningResource, ApplicationModel.IResourceWithConnectionString, ApplicationModel.IResource, ApplicationModel.IExpressionValue, ApplicationModel.IValueProvider, ApplicationModel.IManifestExpressionProvider, ApplicationModel.IValueWithReferences, ApplicationModel.IResourceWithEndpoints, IAzurePrivateEndpointTarget
{
public AzureAppConfigurationResource(string name, System.Action<AzureResourceInfrastructure> configureInfrastructure) : base(default!, default!) { }

Expand All @@ -56,7 +56,7 @@ public AzureAppConfigurationResource(string name, System.Action<AzureResourceInf

public override global::Azure.Provisioning.Primitives.ProvisionableResource AddAsExistingResource(AzureResourceInfrastructure infra) { throw null; }

string IAzurePrivateEndpointTarget.GetPrivateDnsZoneName() { throw null; }
System.Collections.Generic.IEnumerable<string> IAzurePrivateEndpointTarget.GetPrivateDnsZoneNames() { throw null; }

System.Collections.Generic.IEnumerable<string> IAzurePrivateEndpointTarget.GetPrivateLinkGroupIds() { throw null; }
}
Expand Down
Loading
Loading