|
| 1 | +version: 0.2 |
| 2 | + |
| 3 | +env: |
| 4 | + variables: |
| 5 | + CI: true |
| 6 | + LOCAL_ENV_RUN: true |
| 7 | + |
| 8 | +phases: |
| 9 | + install: |
| 10 | + runtime-versions: |
| 11 | + java: corretto17 |
| 12 | + |
| 13 | + commands: |
| 14 | + - | |
| 15 | + if(-Not($Env:CODE_COV_TOKEN -eq $null)) { |
| 16 | + [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; |
| 17 | + Invoke-WebRequest -Uri https://uploader.codecov.io/latest/windows/codecov.exe -Outfile codecov.exe |
| 18 | + } |
| 19 | + - dotnet --list-sdks |
| 20 | + - | |
| 21 | + $DOTNET_ROOT = "$Env:USERPROFILE\.dotnet" |
| 22 | + $Env:PATH = "$Env:PATH;$DOTNET_ROOT;$DOTNET_ROOT\tools" |
| 23 | + dotnet tool install -g AWS.CodeArtifact.NuGet.CredentialProvider |
| 24 | + dotnet codeartifact-creds install |
| 25 | + - dotnet --list-sdks |
| 26 | + |
| 27 | + build: |
| 28 | + commands: |
| 29 | + - | |
| 30 | + # See https://github.com/NuGet/NuGet.Client/pull/4259 |
| 31 | + $Env:NUGET_EXPERIMENTAL_CHAIN_BUILD_RETRY_POLICY = "3,1000" |
| 32 | +
|
| 33 | + if ($Env:CODEARTIFACT_DOMAIN_NAME -and $Env:CODEARTIFACT_REPO_NAME) { |
| 34 | + $Env:CODEARTIFACT_URL=aws codeartifact get-repository-endpoint --domain $Env:CODEARTIFACT_DOMAIN_NAME --repository $Env:CODEARTIFACT_REPO_NAME --format maven --query repositoryEndpoint --output text |
| 35 | + $Env:CODEARTIFACT_NUGET_URL=aws codeartifact get-repository-endpoint --domain $Env:CODEARTIFACT_DOMAIN_NAME --repository $Env:CODEARTIFACT_REPO_NAME --format nuget --query repositoryEndpoint --output text |
| 36 | + $Env:CODEARTIFACT_AUTH_TOKEN=aws codeartifact get-authorization-token --domain $Env:CODEARTIFACT_DOMAIN_NAME --query authorizationToken --output text --duration-seconds 3600 |
| 37 | + } |
| 38 | +
|
| 39 | + # Rider is very expensive (spikes our CI jobs to 50% CPU, so let it do the prep work in parallel, but run tests later |
| 40 | + ./gradlew -PideProfileName="$Env:ALTERNATIVE_IDE_PROFILE_NAME" :plugin-amazonq:check --info --console plain --continue |
| 41 | + if ($LastExitCode -ne 0) { |
| 42 | + Write-Host "Command failed with exit code $LastExitCode" |
| 43 | + exit -1 |
| 44 | + } |
| 45 | + # ./gradlew -PideProfileName="$Env:ALTERNATIVE_IDE_PROFILE_NAME" :plugin-toolkit:jetbrains-rider:check coverageReport --info --console plain |
| 46 | +
|
| 47 | + post_build: |
| 48 | + commands: |
| 49 | + - | |
| 50 | + $script:TEST_ARTIFACTS=Join-Path $env:TEMP testArtifacts |
| 51 | + $script:TEST_REPORTS=Join-Path $script:TEST_ARTIFACTS test-reports |
| 52 | +
|
| 53 | + function copyFolder($basedir, $subdir, $destdir) { |
| 54 | + $src = Join-Path "." -ChildPath $basedir | Join-Path -ChildPath $subdir |
| 55 | + $dest = Join-Path $destdir -ChildPath $basedir | Join-Path -ChildPath $subDir |
| 56 | + if( (Get-ChildItem $src -ErrorAction SilentlyContinue | Measure-Object).Count -ne 0) { |
| 57 | + Copy-Item $src $dest -Recurse -Force -ErrorAction SilentlyContinue |
| 58 | + } |
| 59 | + } |
| 60 | +
|
| 61 | + function copyArtifacts($root) { |
| 62 | + copyFolder $root "build/reports/" $script:TEST_ARTIFACTS |
| 63 | + copyFolder $root "build/idea-sandbox/system-test/log/" $script:TEST_ARTIFACTS |
| 64 | + copyFolder $root "build/test-results/test/" $script:TEST_REPORTS |
| 65 | + } |
| 66 | +
|
| 67 | + copyArtifacts "." |
| 68 | + Get-ChildItem -Directory | ForEach-Object { copyArtifacts $_.Name } |
| 69 | +
|
| 70 | + if(-Not($Env:CODEBUILD_BUILD_SUCCEEDING -eq "0" -Or $Env:CODE_COV_TOKEN -eq $null)) { |
| 71 | + $env:VCS_COMMIT_ID=$Env:CODEBUILD_RESOLVED_SOURCE_VERSION; |
| 72 | + $env:CI_BUILD_URL=[uri]::EscapeUriString($Env:CODEBUILD_BUILD_URL); |
| 73 | + $env:CI_BUILD_ID=$Env:CODEBUILD_BUILD_ID; |
| 74 | + .\codecov.exe -t $Env:CODE_COV_TOKEN ` |
| 75 | + --flags unittest ` |
| 76 | + -f "build/reports/jacoco/coverageReport/coverageReport.xml" ` |
| 77 | + -c $Env:CODEBUILD_RESOLVED_SOURCE_VERSION |
| 78 | + } |
| 79 | +
|
| 80 | +reports: |
| 81 | + unit-test: |
| 82 | + files: |
| 83 | + - "**/*" |
| 84 | + base-directory: "$env:TEMP/testArtifacts/test-reports" |
| 85 | + discard-paths: yes |
| 86 | + |
| 87 | +artifacts: |
| 88 | + base-directory: "$env:TEMP/testArtifacts" |
| 89 | + files: |
| 90 | + - "**/*" |
0 commit comments