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

Add long-running integration tests runnable by Azure DevOps #680

Merged
merged 48 commits into from
Jul 26, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
246fafa
Add long running test
MattMcL4475 Jun 27, 2023
4f4c24d
update test
MattMcL4475 Jun 27, 2023
9d8ac21
add file
MattMcL4475 Jun 27, 2023
82c5389
test
MattMcL4475 Jun 27, 2023
2ec8e97
update working directory
MattMcL4475 Jun 29, 2023
33e9746
fix path
MattMcL4475 Jun 29, 2023
c13c3cc
use default azure creds
MattMcL4475 Jun 29, 2023
bc58e45
fix azure cli credential
MattMcL4475 Jun 30, 2023
b87f413
fail test if any failed workflows
MattMcL4475 Jun 30, 2023
f630c91
add comments and minor optimizations
MattMcL4475 Jun 30, 2023
b12be46
update comments
MattMcL4475 Jun 30, 2023
605a776
add support for container sas
MattMcL4475 Jul 1, 2023
989cb24
minor
MattMcL4475 Jul 1, 2023
b354224
debug
MattMcL4475 Jul 12, 2023
ae935ec
minor
MattMcL4475 Jul 12, 2023
e5b968c
remove double quotes
MattMcL4475 Jul 12, 2023
cb1d3c5
fix waiting logic
MattMcL4475 Jul 13, 2023
34c72c6
update logs
MattMcL4475 Jul 13, 2023
c601a57
update submodule
MattMcL4475 Jul 13, 2023
f69fef1
update trigger file for larger scatter
MattMcL4475 Jul 13, 2023
743b562
minor
MattMcL4475 Jul 13, 2023
21c37b3
filter by state
MattMcL4475 Jul 13, 2023
dd4703a
add new wdl to set disk size
MattMcL4475 Jul 13, 2023
98c7bbc
update gatk to latest
MattMcL4475 Jul 14, 2023
33d0fc8
update submodule and minor formatting
MattMcL4475 Jul 18, 2023
3aa0d8b
add debug
MattMcL4475 Jul 18, 2023
3d4f8a2
add timeout and assertion
MattMcL4475 Jul 19, 2023
e5e6f4c
fix status check
MattMcL4475 Jul 19, 2023
702ca60
fail the test if any failed workflows
MattMcL4475 Jul 19, 2023
2b03bc6
change logic to exact equality
MattMcL4475 Jul 19, 2023
12ddf4e
fix bug
MattMcL4475 Jul 19, 2023
13706ce
minor formatting
MattMcL4475 Jul 19, 2023
650a518
refactor
MattMcL4475 Jul 19, 2023
28d1bcc
refactor
MattMcL4475 Jul 19, 2023
23481fb
minor rename
MattMcL4475 Jul 19, 2023
1efeeb4
remove whitespace
MattMcL4475 Jul 19, 2023
f6ab50f
add failure info
MattMcL4475 Jul 19, 2023
c84f70b
add failure info to console
MattMcL4475 Jul 19, 2023
17a346a
minor rename
MattMcL4475 Jul 19, 2023
4fc2097
add support for all common workflows
MattMcL4475 Jul 20, 2023
e18b8fb
minor fix
MattMcL4475 Jul 20, 2023
e175c02
update tes submodule
MattMcL4475 Jul 21, 2023
a06eec5
update submodule
MattMcL4475 Jul 22, 2023
78cdb21
update subm
MattMcL4475 Jul 26, 2023
02f9064
update submodule
MattMcL4475 Jul 26, 2023
465244a
update submodule
MattMcL4475 Jul 26, 2023
84de5d9
update url
MattMcL4475 Jul 26, 2023
7ee7eed
update path
MattMcL4475 Jul 26, 2023
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
287 changes: 258 additions & 29 deletions src/TriggerService.Tests/IntegrationTests.cs

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions src/TriggerService.Tests/TriggerService.Tests.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="Azure.Identity" Version="1.9.0" />
<PackageReference Include="Microsoft.Azure.Batch" Version="15.4.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.5.0" />
<PackageReference Include="Moq" Version="4.18.4" />
Expand Down
32 changes: 32 additions & 0 deletions src/TriggerService.Tests/test-wdls/mutect2/mutect2.inputs.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{
"Mutect2.gatk_docker": "broadinstitute/gatk:latest",

"Mutect2.intervals": "/datasettestinputs/dataset/references/hg19/whole_exome_agilent_1.1_refseq_plus_3_boosters.Homo_sapiens_assembly19.baits.interval_list",
"Mutect2.scatter_count": 50,
"Mutect2.m2_extra_args": "--downsampling-stride 20 --max-reads-per-alignment-start 6 --max-suspicious-reads-per-alignment-start 6",
"Mutect2.filter_funcotations": "True",
"Mutect2.funco_reference_version": "hg19",
"Mutect2.funco_data_sources_tar_gz": "/datasettestinputs/dataset/gatk4-somatic-snvs-indels/funcotator/funcotator_dataSources.v1.6.20190124s.tar.gz",
"Mutect2.funco_transcript_selection_list": "/datasettestinputs/dataset/gatk4-somatic-snvs-indels/funcotator/transcriptList.exact_uniprot_matches.AKT1_CRLF2_FGFR1.txt",
"Mutect2.max_retries": 3,

"Mutect2.ref_fasta": "/datasettestinputs/dataset/references/hg19/Homo_sapiens_assembly19.fasta",
"Mutect2.ref_dict": "/datasettestinputs/dataset/references/hg19/Homo_sapiens_assembly19.dict",
"Mutect2.ref_fai": "/datasettestinputs/dataset/references/hg19/Homo_sapiens_assembly19.fasta.fai",
"Mutect2.normal_reads": "/datasettestinputs/dataset/gatk4-somatic-snvs-indels/HCC1143/HCC1143_normal.bam",
"Mutect2.normal_reads_index": "/datasettestinputs/dataset/gatk4-somatic-snvs-indels/HCC1143/HCC1143_normal.bai",
"Mutect2.tumor_reads": "/datasettestinputs/dataset/gatk4-somatic-snvs-indels/HCC1143/HCC1143.bam",
"Mutect2.tumor_reads_index": "/datasettestinputs/dataset/gatk4-somatic-snvs-indels/HCC1143/HCC1143.bai",

"Mutect2.pon": "/datasettestinputs/dataset/gatk4-somatic-snvs-indels/Mutect2-exome-panel.vcf",
"Mutect2.pon_idx": "/datasettestinputs/dataset/gatk4-somatic-snvs-indels/Mutect2-exome-panel.vcf.idx",
"Mutect2.gnomad": "/datasettestinputs/dataset/gatk4-somatic-snvs-indels/af-only-gnomad.raw.sites.vcf",
"Mutect2.gnomad_idx": "/datasettestinputs/dataset/gatk4-somatic-snvs-indels/af-only-gnomad.raw.sites.vcf.idx",
"Mutect2.variants_for_contamination": "/datasettestinputs/dataset/gatk4-somatic-snvs-indels/small_exac_common_3.vcf",
"Mutect2.variants_for_contamination_idx": "/datasettestinputs/dataset/gatk4-somatic-snvs-indels/small_exac_common_3.vcf.idx",
"Mutect2.realignment_index_bundle": "/datasettestinputs/dataset/gatk4-somatic-snvs-indels/Homo_sapiens_assembly38.index_bundle",

"Mutect2.emergency_extra_disk": 20
}


Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"WorkflowUrl": "https://raw.githubusercontent.com/microsoft/gatk4-somatic-snvs-indels-azure/az2.7.0/mutect2.wdl",
"WorkflowInputsUrl": "https://raw.githubusercontent.com/microsoft/CromwellOnAzure/main/long-running-int-test/src/TriggerService.Tests/test-wdls/mutect2/mutect2.inputs.json",
"WorkflowOptionsUrl": null,
"WorkflowDependenciesUrl": null
}
15 changes: 11 additions & 4 deletions src/deploy-cromwell-on-azure/Deployer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2108,12 +2108,19 @@ private static async Task<bool> IsWorkflowSuccessfulAfterLongPollingAsync(IStora
{
try
{
var succeeded = container.GetBlobs(prefix: $"succeeded/{id}").Count() == 1;
var failed = container.GetBlobs(prefix: $"failed/{id}").Count() == 1;
var hasSucceeded = container.GetBlobs(prefix: $"succeeded/{id}").Count() == 1;
var failedWorkflowTriggerFileBlobs = container.GetBlobs(prefix: $"failed/{id}").ToList();
var hasFailed = failedWorkflowTriggerFileBlobs.Count == 1;

if (succeeded || failed)
if (hasSucceeded || hasFailed)
{
return succeeded && !failed;
if (hasFailed)
{
var failedContent = (await container.GetBlobClient(failedWorkflowTriggerFileBlobs.First().Name).DownloadContentAsync()).Value.Content.ToString();
ConsoleEx.WriteLine($"Failed workflow trigger JSON: {failedContent}");
}

return hasSucceeded && !hasFailed;
}
}
catch (Exception exc)
Expand Down
2 changes: 1 addition & 1 deletion src/ga4gh-tes
Submodule ga4gh-tes updated 87 files
+10 −0 .github/ISSUE_TEMPLATE/feature_request.md
+0 −19 .github/workflows/dot_net_format.yml
+27 −0 .github/workflows/dotnet-restore-build-test-with-root.yml
+27 −0 .github/workflows/dotnet-restore-build-test.yml
+0 −5 format/global.json
+3 −3 src/CommonUtilities/Models/NodeTask.cs
+118 −0 src/PublishTesRunnerToTesApiArtifacts/PublishTesRunnerToTesApiArtifacts.csproj
+57 −12 src/Tes.Runner.Test/BlobPipelineTests.cs
+85 −0 src/Tes.Runner.Test/NetworkUtilityTests.cs
+2 −2 src/Tes.Runner.Test/PartReaderTests.cs
+14 −2 src/Tes.Runner.Test/PartsProducerTests.cs
+1 −1 src/Tes.Runner.Test/PartsWriterTests.cs
+6 −8 src/Tes.Runner.Test/ResolutionPolicyHandlerTests.cs
+24 −5 src/Tes.Runner.Test/RunnerTestUtils.cs
+8 −5 src/Tes.Runner.Test/Storage/CloudProviderSchemeConverterTests.cs
+185 −0 src/Tes.Runner.Test/Storage/FileOperationResolverTests.cs
+114 −0 src/Tes.Runner.Test/Transfer/BlobBlockApiHttpUtilsTests.cs
+86 −0 src/Tes.Runner.Test/Transfer/DefaultFileInfoProviderTests.cs
+127 −0 src/Tes.Runner.Test/Transfer/PartsProcessorTests.cs
+11 −12 src/Tes.Runner.Test/Transfer/PipelineOptionsOptimizerTests.cs
+21 −0 src/Tes.Runner/Docker/DockerExecutor.cs
+115 −0 src/Tes.Runner/Docker/NetworkUtility.cs
+8 −8 src/Tes.Runner/Executor.cs
+226 −0 src/Tes.Runner/Storage/FileOperationResolver.cs
+8 −16 src/Tes.Runner/Storage/ResolutionPolicyHandler.cs
+134 −38 src/Tes.Runner/Transfer/BlobBlockApiHttpUtils.cs
+19 −9 src/Tes.Runner/Transfer/BlobDownloader.cs
+28 −4 src/Tes.Runner/Transfer/BlobOperationPipeline.cs
+25 −7 src/Tes.Runner/Transfer/BlobUploader.cs
+54 −1 src/Tes.Runner/Transfer/DefaultFileInfoProvider.cs
+4 −2 src/Tes.Runner/Transfer/IBlobPipeline.cs
+10 −2 src/Tes.Runner/Transfer/IFileInfoProvider.cs
+5 −5 src/Tes.Runner/Transfer/Md5HashListProvider.cs
+49 −8 src/Tes.Runner/Transfer/PartsProcessor.cs
+32 −18 src/Tes.Runner/Transfer/PartsProducer.cs
+14 −25 src/Tes.Runner/Transfer/PartsReader.cs
+12 −27 src/Tes.Runner/Transfer/PartsWriter.cs
+20 −1 src/Tes.Runner/Transfer/PipelineLoggerFactory.cs
+17 −16 src/Tes.Runner/Transfer/PipelineOptionsOptimizer.cs
+38 −17 src/Tes.Runner/Transfer/ProcessedPartsProcessor.cs
+5 −111 src/Tes.RunnerCLI/Commands/CommandHandlers.cs
+36 −3 src/Tes.RunnerCLI/README.md
+13 −10 src/Tes.RunnerCLI/TesTask.json
+17 −1 src/Tes/Models/TesOutput.cs
+246 −0 src/Tes/Repository/PostgreSqlCachingRepository.cs
+11 −0 src/Tes/Repository/RepositoryCollisionException.cs
+2 −3 src/Tes/Repository/TesRepositoryCache.cs
+125 −115 src/Tes/Repository/TesTaskPostgreSqlRepository.cs
+60 −0 src/Tes/Utilities/ExpressionParameterSubstitute.cs
+5 −1 src/TesApi.Tests/BatchSchedulerTests.cs
+1 −0 src/TesApi.Tests/ConfigurationUtilsTests.cs
+75 −0 src/TesApi.Tests/Integration/TerraWsmApiClientIntegrationTests.cs
+41 −0 src/TesApi.Tests/Integration/TestEnvTokenCredential.cs
+51 −0 src/TesApi.Tests/Integration/TestTerraEnvInfo.cs
+43 −16 src/TesApi.Tests/Repository/TesTaskPostgreSqlRepositoryIntegrationTests.cs
+103 −0 src/TesApi.Tests/Storage/DefaultStorageAccessProviderTests.cs
+78 −6 src/TesApi.Tests/TerraApiStubData.cs
+86 −30 src/TesApi.Tests/TerraStorageAccessProviderTests.cs
+20 −0 src/TesApi.Tests/TerraWsmApiClientTests.cs
+2 −1 src/TesApi.Tests/expectedBasicJsonResult.json
+2 −1 src/TesApi.Tests/expectedFullJsonResult.json
+2 −1 src/TesApi.Tests/tesTaskExample.json
+11 −1 src/TesApi.Web/AzureProxy.cs
+1 −1 src/TesApi.Web/BatchPoolService.cs
+27 −38 src/TesApi.Web/BatchScheduler.cs
+11 −10 src/TesApi.Web/ConfigurationUtils.cs
+9 −1 src/TesApi.Web/Controllers/TaskServiceApi.cs
+30 −0 src/TesApi.Web/Management/Clients/TerraWsmApiClient.cs
+1 −1 src/TesApi.Web/Management/Configuration/TerraOptions.cs
+23 −0 src/TesApi.Web/Management/Models/Terra/WorkspaceManagerAPI.csproj
+212 −0 src/TesApi.Web/Management/Models/Terra/WsmListContainerResourcesResponse.cs
+0 −5 src/TesApi.Web/Options/BatchSchedulingOptions.cs
+5 −19 src/TesApi.Web/Scheduler.cs
+3 −1 src/TesApi.Web/Startup.cs
+35 −2 src/TesApi.Web/Storage/DefaultStorageAccessProvider.cs
+35 −0 src/TesApi.Web/Storage/IStorageAccessProvider.cs
+47 −4 src/TesApi.Web/Storage/StorageAccessProvider.cs
+177 −53 src/TesApi.Web/Storage/TerraStorageAccessProvider.cs
+0 −78 src/TesApi.Web/TesApi.Web.csproj
+1 −1 src/TesApi.Web/scripts/clean-executor.sh
+1 −0 src/deploy-tes-on-azure/Configuration.cs
+13 −1 src/deploy-tes-on-azure/Deployer.cs
+0 −2 src/deploy-tes-on-azure/KubernetesManager.cs
+1 −1 src/deploy-tes-on-azure/Properties/launchSettings.json
+0 −1 src/deploy-tes-on-azure/scripts/env-04-settings.txt
+0 −2 src/deploy-tes-on-azure/scripts/helm/templates/tes-deployment.yaml
+0 −1 src/deploy-tes-on-azure/scripts/helm/values-template.yaml
Loading