Skip to content

Commit 2a257f8

Browse files
committed
Separate workflow
1 parent 76a0bd7 commit 2a257f8

File tree

1 file changed

+180
-15
lines changed

1 file changed

+180
-15
lines changed

.github/workflows/test-artifacts.yml

Lines changed: 180 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -130,10 +130,12 @@ jobs:
130130
runs-on: ubuntu-latest
131131
outputs:
132132
ec2_gpu_matrix: ${{ steps.set-matrix.outputs.ec2_gpu_matrix }}
133-
ec2_linux_nvidia_matrix: ${{ steps.set-matrix.outputs.ec2_linux_nvidia_matrix }}
133+
ec2_linux_wd_matrix: ${{ steps.set-matrix.outputs.ec2_linux_wd_matrix }}
134+
ec2_linux_wd_nvidia_matrix: ${{ steps.set-matrix.outputs.ec2_linux_wd_nvidia_matrix }}
134135
ec2_linux_matrix: ${{ steps.set-matrix.outputs.ec2_linux_matrix }}
135136
ec2_selinux_matrix: ${{ steps.set-matrix.outputs.ec2_selinux_matrix }}
136-
ec2_windows_nvidia_matrix: ${{ steps.set-matrix.outputs.ec2_windows_nvidia_matrix }}
137+
ec2_windows_wd_matrix: ${{ steps.set-matrix.outputs.ec2_windows_wd_matrix }}
138+
ec2_windows_wd_nvidia_matrix: ${{ steps.set-matrix.outputs.ec2_windows_wd_nvidia_matrix }}
137139
ec2_windows_matrix: ${{ steps.set-matrix.outputs.ec2_windows_matrix }}
138140
ec2_mac_matrix: ${{ steps.set-matrix.outputs.ec2_mac_matrix }}
139141
ec2_performance_matrix: ${{steps.set-matrix.outputs.ec2_performance_matrix}}
@@ -164,10 +166,12 @@ jobs:
164166
go run --tags=generator generator/test_case_generator.go
165167
echo "ec2_gpu_matrix=$(echo $(cat generator/resources/ec2_gpu_complete_test_matrix.json))" >> "$GITHUB_OUTPUT"
166168
echo "eks_addon_matrix=$(echo $(cat generator/resources/eks_addon_complete_test_matrix.json))" >> "$GITHUB_OUTPUT"
167-
echo "ec2_linux_nvidia_matrix=$(echo $(cat generator/resources/ec2_linux_nvidia_complete_test_matrix.json))" >> "$GITHUB_OUTPUT"
169+
echo "ec2_linux_wd_matrix=$(echo $(cat generator/resources/ec2_linux_wd_complete_test_matrix.json))" >> "$GITHUB_OUTPUT"
170+
echo "ec2_linux_wd_nvidia_matrix=$(echo $(cat generator/resources/ec2_linux_wd_nvidia_complete_test_matrix.json))" >> "$GITHUB_OUTPUT"
168171
echo "ec2_linux_matrix=$(echo $(cat generator/resources/ec2_linux_complete_test_matrix.json))" >> "$GITHUB_OUTPUT"
169172
echo "ec2_selinux_matrix=$(echo $(cat generator/resources/ec2_selinux_complete_test_matrix.json))" >> "$GITHUB_OUTPUT"
170-
echo "ec2_windows_nvidia_matrix=$(echo $(cat generator/resources/ec2_windows_nvidia_complete_test_matrix.json))" >> "$GITHUB_OUTPUT"
173+
echo "ec2_windows_wd_matrix=$(echo $(cat generator/resources/ec2_windows_wd_complete_test_matrix.json))" >> "$GITHUB_OUTPUT"
174+
echo "ec2_windows_wd_nvidia_matrix=$(echo $(cat generator/resources/ec2_windows_wd_nvidia_complete_test_matrix.json))" >> "$GITHUB_OUTPUT"
171175
echo "ec2_windows_matrix=$(echo $(cat generator/resources/ec2_windows_complete_test_matrix.json))" >> "$GITHUB_OUTPUT"
172176
echo "ec2_mac_matrix=$(echo $(cat generator/resources/ec2_mac_complete_test_matrix.json))" >> "$GITHUB_OUTPUT"
173177
echo "ec2_performance_matrix=$(echo $(cat generator/resources/ec2_performance_complete_test_matrix.json))" >> "$GITHUB_OUTPUT"
@@ -185,10 +189,10 @@ jobs:
185189
run: |
186190
echo "ec2_gpu_matrix: ${{ steps.set-matrix.outputs.ec2_gpu_matrix }}"
187191
echo "eks_addon_matrix: ${{ steps.set-matrix.outputs.eks_addon_matrix }}"
188-
echo "ec2_linux_nvidia_matrix: ${{ steps.set-matrix.outputs.ec2_linux_nvidia_matrix }}"
192+
echo "ec2_linux_wd_nvidia_matrix: ${{ steps.set-matrix.outputs.ec2_linux_wd_nvidia_matrix }}"
189193
echo "ec2_linux_matrix: ${{ steps.set-matrix.outputs.ec2_linux_matrix }}"
190194
echo "ec2_selinux_matrix: ${{ steps.set-matrix.outputs.ec2_selinux_matrix }}"
191-
echo "ec2_windows_nvidia_matrix: ${{ steps.set-matrix.outputs.ec2_windows_nvidia_matrix }}"
195+
echo "ec2_windows_wd_nvidia_matrix: ${{ steps.set-matrix.outputs.ec2_windows_wd_nvidia_matrix }}"
192196
echo "ec2_windows_matrix: ${{ steps.set-matrix.outputs.ec2_windows_matrix }}"
193197
echo "ec2_mac_matrix: ${{ steps.set-matrix.outputs.ec2_mac_matrix }}"
194198
echo "ec2_performance_matrix: ${{ steps.set-matrix.outputs.ec2_performance_matrix}}"
@@ -420,14 +424,14 @@ jobs:
420424
fi
421425
terraform destroy --auto-approve
422426
423-
EC2NvidiaNVIDIALinuxWDIntegrationTest:
427+
EC2LinuxWDIntegrationTest:
424428
needs: [ StartLocalStack, GenerateTestMatrix, OutputEnvVariables ]
425429
name: ${{matrix.arrays.testName}}
426430
runs-on: ubuntu-latest
427431
strategy:
428432
fail-fast: false
429433
matrix:
430-
arrays: ${{ fromJson(needs.GenerateTestMatrix.outputs.ec2_linux_nvidia_matrix) }}
434+
arrays: ${{ fromJson(needs.GenerateTestMatrix.outputs.ec2_linux_wd_matrix) }}
431435
permissions:
432436
id-token: write
433437
contents: read
@@ -485,10 +489,7 @@ jobs:
485489
-var="local_stack_host_name=${{ needs.StartLocalStack.outputs.local_stack_host_name }}" \
486490
-var="s3_bucket=${{ vars.S3_INTEGRATION_BUCKET }}" \
487491
-var="ssh_key_name=${{env.KEY_NAME}}" \
488-
-var="test_dir=${{ matrix.arrays.test_dir }}" \
489-
-var="agent_start=${{ matrix.arrays.agentStartCommand }}" \
490-
-var="excluded_tests='${{ matrix.arrays.excludedTests }}'" \
491-
-var="plugin_tests='${{ github.event.inputs.plugins }}'"; then terraform destroy -auto-approve
492+
-var="test_dir=${{ matrix.arrays.test_dir }}"; then terraform destroy -auto-approve
492493
else
493494
terraform destroy -auto-approve && exit 1
494495
fi
@@ -509,14 +510,14 @@ jobs:
509510
510511
terraform destroy -lock-timeout=5m -var="ami=${{ matrix.arrays.ami }}" --auto-approve
511512
512-
EC2NvidiaNVIDIAWindowsWDIntegrationTest:
513+
EC2WindowsWDIntegrationTest:
513514
needs: [ StartLocalStack, GenerateTestMatrix, OutputEnvVariables ]
514515
name: ${{matrix.arrays.testName}}
515516
runs-on: ubuntu-latest
516517
strategy:
517518
fail-fast: false
518519
matrix:
519-
arrays: ${{ fromJson(needs.GenerateTestMatrix.outputs.ec2_windows_nvidia_matrix) }}
520+
arrays: ${{ fromJson(needs.GenerateTestMatrix.outputs.ec2_windows_wd_matrix) }}
520521
permissions:
521522
id-token: write
522523
contents: read
@@ -559,7 +560,172 @@ jobs:
559560
560561
terraform init
561562
if terraform apply --auto-approve \
563+
-var="ec2_instance_type=${{ matrix.arrays.instanceType }}" \
564+
-var="ssh_key_value=${PRIVATE_KEY}" \
565+
-var="ssh_key_name=${KEY_NAME}" \
566+
-var="test_name=${{ matrix.arrays.os }}" \
567+
-var="cwa_github_sha=${{ inputs.build_id }}" \
568+
-var="test_dir=${{ matrix.arrays.test_dir }}" \
569+
-var="ami=${{ matrix.arrays.ami }}" \
570+
-var="s3_bucket=${S3_INTEGRATION_BUCKET}" ; then
571+
terraform destroy -auto-approve
572+
else
573+
terraform destroy -auto-approve && exit 1
574+
fi
575+
576+
- name: Terraform destroy
577+
if: ${{ (cancelled() || failure()) }}
578+
uses: nick-fields/retry@v2
579+
with:
580+
max_attempts: 3
581+
timeout_minutes: 8
582+
retry_wait_seconds: 5
583+
command: |
584+
if [ "${{ matrix.arrays.terraform_dir }}" != "" ]; then
585+
cd "${{ matrix.arrays.terraform_dir }}"
586+
else
587+
cd terraform/ec2/win
588+
fi
589+
590+
terraform destroy -lock-timeout=5m -var="ami=${{ matrix.arrays.ami }}" --auto-approve
591+
592+
593+
EC2NvidiaLinuxWDIntegrationTest:
594+
needs: [ StartLocalStack, GenerateTestMatrix, OutputEnvVariables ]
595+
name: ${{matrix.arrays.testName}}
596+
runs-on: ubuntu-latest
597+
strategy:
598+
fail-fast: false
599+
matrix:
600+
arrays: ${{ fromJson(needs.GenerateTestMatrix.outputs.ec2_linux_wd_nvidia_matrix) }}
601+
permissions:
602+
id-token: write
603+
contents: read
604+
steps:
605+
- uses: actions/checkout@v3
606+
with:
607+
repository: ${{ needs.OutputEnvVariables.outputs.CWA_GITHUB_TEST_REPO_NAME }}
608+
ref: ${{ needs.OutputEnvVariables.outputs.CWA_GITHUB_TEST_REPO_BRANCH }}
609+
610+
- name: Configure AWS Credentials
611+
uses: aws-actions/configure-aws-credentials@v4
612+
with:
613+
role-to-assume: ${{ env.TERRAFORM_AWS_ASSUME_ROLE }}
614+
aws-region: us-west-2
615+
role-duration-seconds: ${{ env.TERRAFORM_AWS_ASSUME_ROLE_DURATION }}
616+
617+
- name: Echo Test Info
618+
run: echo run on ec2 instance os ${{ matrix.arrays.os }} arc ${{ matrix.arrays.arc }} test dir ${{ matrix.arrays.test_dir }}
619+
620+
- name: Install Terraform
621+
uses: hashicorp/setup-terraform@v3
622+
with:
623+
terraform_version: 1.12.0
624+
625+
- name: Verify Terraform version
626+
run: terraform --version
627+
628+
- name: Terraform apply
629+
uses: nick-fields/retry@v2
630+
with:
631+
max_attempts: 3
632+
timeout_minutes: 30
633+
retry_wait_seconds: 5
634+
command: |
635+
if [ "${{ matrix.arrays.terraform_dir }}" != "" ]; then
636+
cd "${{ matrix.arrays.terraform_dir }}"
637+
else
638+
cd terraform/ec2/linux
639+
fi
640+
641+
terraform init
642+
if terraform apply --auto-approve \
643+
-var="ssh_key_value=${{env.PRIVATE_KEY}}" \
644+
-var="github_test_repo=${{ needs.OutputEnvVariables.outputs.CWA_GITHUB_TEST_REPO_URL }}" \
645+
-var="test_name=${{ matrix.arrays.os }}" \
646+
-var="cwa_github_sha=${{inputs.build_id}}" \
647+
-var="install_agent=${{ matrix.arrays.installAgentCommand }}" \
562648
-var="github_test_repo_branch=${{ needs.OutputEnvVariables.outputs.CWA_GITHUB_TEST_REPO_BRANCH }}" \
649+
-var="ec2_instance_type=${{ matrix.arrays.instanceType }}" \
650+
-var="user=${{ matrix.arrays.username }}" \
651+
-var="ami=${{ matrix.arrays.ami }}" \
652+
-var="ca_cert_path=${{ matrix.arrays.caCertPath }}" \
653+
-var="arc=${{ matrix.arrays.arc }}" \
654+
-var="binary_name=${{ matrix.arrays.binaryName }}" \
655+
-var="local_stack_host_name=${{ needs.StartLocalStack.outputs.local_stack_host_name }}" \
656+
-var="s3_bucket=${{ vars.S3_INTEGRATION_BUCKET }}" \
657+
-var="ssh_key_name=${{env.KEY_NAME}}" \
658+
-var="test_dir=${{ matrix.arrays.test_dir }}"; then terraform destroy -auto-approve
659+
else
660+
terraform destroy -auto-approve && exit 1
661+
fi
662+
663+
- name: Terraform destroy
664+
if: ${{ (cancelled() || failure()) }}
665+
uses: nick-fields/retry@v2
666+
with:
667+
max_attempts: 3
668+
timeout_minutes: 8
669+
retry_wait_seconds: 5
670+
command: |
671+
if [ "${{ matrix.arrays.terraform_dir }}" != "" ]; then
672+
cd "${{ matrix.arrays.terraform_dir }}"
673+
else
674+
cd terraform/ec2/linux
675+
fi
676+
677+
terraform destroy -lock-timeout=5m -var="ami=${{ matrix.arrays.ami }}" --auto-approve
678+
679+
EC2NvidiaWindowsWDIntegrationTest:
680+
needs: [ StartLocalStack, GenerateTestMatrix, OutputEnvVariables ]
681+
name: ${{matrix.arrays.testName}}
682+
runs-on: ubuntu-latest
683+
strategy:
684+
fail-fast: false
685+
matrix:
686+
arrays: ${{ fromJson(needs.GenerateTestMatrix.outputs.ec2_windows_wd_nvidia_matrix) }}
687+
permissions:
688+
id-token: write
689+
contents: read
690+
steps:
691+
- uses: actions/checkout@v3
692+
with:
693+
repository: ${{ needs.OutputEnvVariables.outputs.CWA_GITHUB_TEST_REPO_NAME }}
694+
ref: ${{ needs.OutputEnvVariables.outputs.CWA_GITHUB_TEST_REPO_BRANCH }}
695+
696+
- name: Configure AWS Credentials
697+
uses: aws-actions/configure-aws-credentials@v4
698+
with:
699+
role-to-assume: ${{ env.TERRAFORM_AWS_ASSUME_ROLE }}
700+
aws-region: us-west-2
701+
role-duration-seconds: ${{ env.TERRAFORM_AWS_ASSUME_ROLE_DURATION }}
702+
703+
- name: Echo Test Info
704+
run: echo run on ec2 instance os ${{ matrix.arrays.os }} arc ${{ matrix.arrays.arc }} test dir ${{ matrix.arrays.test_dir }}
705+
706+
- name: Install Terraform
707+
uses: hashicorp/setup-terraform@v3
708+
with:
709+
terraform_version: 1.12.0
710+
711+
- name: Verify Terraform version
712+
run: terraform --version
713+
714+
- name: Terraform apply
715+
uses: nick-fields/retry@v2
716+
with:
717+
max_attempts: 3
718+
timeout_minutes: 60
719+
retry_wait_seconds: 5
720+
command: |
721+
if [ "${{ matrix.arrays.terraform_dir }}" != "" ]; then
722+
cd "${{ matrix.arrays.terraform_dir }}"
723+
else
724+
cd terraform/ec2/win
725+
fi
726+
727+
terraform init
728+
if terraform apply --auto-approve \
563729
-var="ec2_instance_type=${{ matrix.arrays.instanceType }}" \
564730
-var="ssh_key_value=${PRIVATE_KEY}" \
565731
-var="ssh_key_name=${KEY_NAME}" \
@@ -714,7 +880,6 @@ jobs:
714880
715881
terraform init
716882
if terraform apply --auto-approve \
717-
-var="github_test_repo_branch=${{ needs.OutputEnvVariables.outputs.CWA_GITHUB_TEST_REPO_BRANCH }}" \
718883
-var="ec2_instance_type=${{ matrix.arrays.instanceType }}" \
719884
-var="ssh_key_value=${PRIVATE_KEY}" \
720885
-var="ssh_key_name=${KEY_NAME}" \

0 commit comments

Comments
 (0)