Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CI Pipeline building app with dependency on 3rd party symbol extension errors with "Unable to locate the server instance: MicrosoftDynamicsNavServer$BC" #3764

Open
BW-PA opened this issue Nov 15, 2024 · 0 comments
Assignees

Comments

@BW-PA
Copy link

BW-PA commented Nov 15, 2024

Describe the issue
I have a CI pipeline in DevOps that was produced using the hands on labs. I'm trying to get it working on an extension that has a dependency on a 3rd party extension. It was developed via installing the 3rd party AppSource extension into the cloud environment. Adding the dependency in the launch.json and downloading the Symbol file.

I've provided the symbols.app file to the install apps parameter in my pipeline and got the same issue reported here #3717

I then added the -doNotPublishApps parameter to Run-AlPipelinecommand in the DevOps-Pipeline.ps1 file and the pipeline now successfully compiles the app and produces the artifact. However, it now errors while getting the runtime package for the newly compiled app

2024-11-15T06:33:12.4771721Z Getting Runtime Package for BC Dev Test_Hello World_1.0.0.36609.app
2024-11-15T06:33:13.6726647Z Unable to locate the server instance: MicrosoftDynamicsNavServer$BC

I reproduced the issue in a spike HelloWorld app to make sure it wasn't anything particular to the extension itself.

Scripts used to create container and cause the issue
Scripts used are from the DevOps Hands On Labs, hooked up to a CI pipeline in DevOps.

Settings.json

{
    "name":  "Hellow World",
    "memoryLimit":  "6G",
    "installApps":  "https://[REDACTED].blob.core.windows.net/[REDACTED]/latest/apps.zip",
    "previousApps": "",
    "appFolders":  "Hello World",
    "testFolders":  "",
    "installTestRunner":  false,
    "installTestFramework":  false,
    "installTestLibraries":  false,
    "installPerformanceToolkit":  false,
    "doNotSignApps":  true,
    "enableCodeCop":  false,
    "enableAppSourceCop":  false,
    "enablePerTenantExtensionCop":  false,
    "enableUICop":  true,
    "useDefaultAppSourceRuleSet":  true,
    "appSourceCopMandatoryAffixes":  "",
    "appSourceCopSupportedCountries":  "US",
    "additionalCountries":  "",
    "bcContainerHelperVersion":  "Preview",
    "vaultNameForLocal":  "DevOpsBuildVariables",
    "versions":  [
                     {
                         "version":  "ci",
                         "artifact":  "///US/Current",
                         "additionalCountries":  "",
                         "cacheImage":  true,
                         "CreateRuntimePackages":  true
                     },
                     {
                         "version":  "current",
                         "artifact":  "///US/Current",
                         "CreateRuntimePackages":  true
                     },
                     {
                         "version":  "cloud",
                         "additionalCountries":  "",
                         "artifact":  "///US/Current"
                     },
                     {
                         "version":  "nextmajor",
                         "artifact":  "///US/NextMajor"
                     },
                     {
                         "version":  "nextminor",
                         "artifact":  "///US/NextMinor"
                     }
                 ]
}

Excerpt from DevOps-Pipeline.ps1 script showing additional -DoNotPublishApps parameter

Run-AlPipeline @params `
    -pipelinename $pipelineName `
    -containerName $containerName `
    -imageName $imageName `
    -bcAuthContext $authContext `
    -environment $environmentName `
    -accept_insiderEula `
    -artifact $artifact.replace('{INSIDERSASTOKEN}',$insiderSasToken) `
    -memoryLimit $memoryLimit `
    -baseFolder $baseFolder `
    -licenseFile $LicenseFile `
    -installApps $installApps `
    -previousApps $previousApps `
    -appFolders $appFolders `
    -testFolders $testFolders `
    -doNotRunTests:$doNotRunTests `
    -testResultsFile $testResultsFile `
    -testResultsFormat 'JUnit' `
    -installTestRunner:$installTestRunner `
    -installTestFramework:$installTestFramework `
    -installTestLibraries:$installTestLibraries `
    -installPerformanceToolkit:$installPerformanceToolkit `
    -enableCodeCop:$enableCodeCop `
    -enableAppSourceCop:$enableAppSourceCop `
    -enablePerTenantExtensionCop:$enablePerTenantExtensionCop `
    -enableUICop:$enableUICop `
    -useDefaultAppSourceRuleSet:$useDefaultAppSourceRuleSet `
    -azureDevOps:($environment -eq 'AzureDevOps') `
    -gitLab:($environment -eq 'GitLab') `
    -gitHubActions:($environment -eq 'GitHubActions') `
    -failOn 'error' `
    -AppSourceCopMandatoryAffixes $appSourceCopMandatoryAffixes `
    -AppSourceCopSupportedCountries $appSourceCopSupportedCountries `
    -additionalCountries $additionalCountries `
    -buildArtifactFolder $buildArtifactFolder `
    -CreateRuntimePackages:$CreateRuntimePackages `
    -appBuild $appBuild -appRevision $appRevision `
    -doNotPublishApps

if ($environment -eq 'AzureDevOps') {
    Write-Host "##vso[task.setvariable variable=TestResults]$allTestResults"

Full output of scripts
See attached file PipelineRawOutput.txt

Screenshots
Image

Additional context

  • does it happen all the time? Yes - For those apps that have 3rd party dependencies and where we only have access to the downloaded symbol file. Which is enough for the IDE compiler.
  • did it use to work? No - I haven't yet been able to successfully get an app with a 3rd party dependency and provided symbol files working. But then, I've probably been barking up the wrong tree 😀
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants