@@ -16,46 +16,94 @@ jobs:
16
16
- uses : actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
17
17
- uses : ./.github/actions/lint-provider-tfe
18
18
19
- tests :
20
- name : run
19
+ setup :
20
+ name : Setup Test Environment
21
21
runs-on : ubuntu-latest
22
- timeout-minutes : 60
23
- strategy :
24
- fail-fast : false
25
- matrix :
26
- # If you adjust these parameters, also adjust the jrm input files on the "Merge reports" step below
27
- total : [ 1 ]
28
- index : [ 0 ]
22
+ outputs :
23
+ hostname : ${{ steps.tflocal.outputs.hostname }}
24
+ token : ${{ steps.tflocal.outputs.token }}
25
+ admin_configuration_token : ${{ steps.tflocal.outputs.admin_configuration_token }}
26
+ admin_provision_licenses_token : ${{ steps.tflocal.outputs.admin_provision_licenses_token }}
27
+ admin_security_maintenance_token : ${{ steps.tflocal.outputs.admin_security_maintenance_token }}
28
+ admin_site_admin_token : ${{ steps.tflocal.outputs.admin_site_admin_token }}
29
+ admin_subscription_token : ${{ steps.tflocal.outputs.admin_subscription_token }}
30
+ admin_support_token : ${{ steps.tflocal.outputs.admin_support_token }}
31
+ admin_version_maintenance_token : ${{ steps.tflocal.outputs.admin_version_maintenance_token }}
29
32
steps :
30
33
- name : Fetch Outputs
31
- id : tflocal
34
+ id : tflocal-raw
32
35
uses : hashicorp-forge/terraform-cloud-action/outputs@5583d5f554d268ac91b3c37fd0a5e9da2c78c017 # v1.1.0
33
36
with :
34
37
token : " ${{ secrets.TF_WORKFLOW_TFLOCAL_CLOUD_TFC_TOKEN }}"
35
38
organization : hashicorp-v2
36
39
workspace : tflocal-terraform-provider-tfe
37
40
41
+ - name : Parse Outputs
42
+ id : tflocal
43
+ run : |
44
+ echo "hostname=${{ fromJSON(steps.tflocal-raw.outputs.workspace-outputs-json).ngrok_domain }}" >> $GITHUB_OUTPUT
45
+ echo "token=${{ fromJSON(steps.tflocal-raw.outputs.workspace-outputs-json).tfe_token }}" >> $GITHUB_OUTPUT
46
+ echo "admin_configuration_token=${{ fromJSON(steps.tflocal-raw.outputs.workspace-outputs-json).tfe_admin_token_by_role.configuration }}" >> $GITHUB_OUTPUT
47
+ echo "admin_provision_licenses_token=${{ fromJSON(steps.tflocal-raw.outputs.workspace-outputs-json).tfe_admin_token_by_role.provision-licenses }}" >> $GITHUB_OUTPUT
48
+ echo "admin_security_maintenance_token=${{ fromJSON(steps.tflocal-raw.outputs.workspace-outputs-json).tfe_admin_token_by_role.security-maintenance }}" >> $GITHUB_OUTPUT
49
+ echo "admin_site_admin_token=${{ fromJSON(steps.tflocal-raw.outputs.workspace-outputs-json).tfe_admin_token_by_role.site-admin }}" >> $GITHUB_OUTPUT
50
+ echo "admin_subscription_token=${{ fromJSON(steps.tflocal-raw.outputs.workspace-outputs-json).tfe_admin_token_by_role.subscription }}" >> $GITHUB_OUTPUT
51
+ echo "admin_support_token=${{ fromJSON(steps.tflocal-raw.outputs.workspace-outputs-json).tfe_admin_token_by_role.support }}" >> $GITHUB_OUTPUT
52
+ echo "admin_version_maintenance_token=${{ fromJSON(steps.tflocal-raw.outputs.workspace-outputs-json).tfe_admin_token_by_role.version-maintenance }}" >> $GITHUB_OUTPUT
53
+
54
+ tests :
55
+ name : ${{ matrix.test_suite }}
56
+ runs-on : ubuntu-latest
57
+ needs : setup
58
+ timeout-minutes : 40
59
+ strategy :
60
+ fail-fast : false
61
+ matrix :
62
+ include :
63
+ # Standard tests with 5-runner matrix
64
+ - test_suite : " Standard Tests"
65
+ list_tests : " [^(TestAccTFESAMLSettings_omnibus|TestAcc.*_RunDependent)]"
66
+ total : 5
67
+ index : 0
68
+ - test_suite : " Standard Tests"
69
+ list_tests : " [^(TestAccTFESAMLSettings_omnibus|TestAcc.*_RunDependent)]"
70
+ total : 5
71
+ index : 1
72
+ - test_suite : " Standard Tests"
73
+ list_tests : " [^(TestAccTFESAMLSettings_omnibus|TestAcc.*_RunDependent)]"
74
+ total : 5
75
+ index : 2
76
+ - test_suite : " Standard Tests"
77
+ list_tests : " [^(TestAccTFESAMLSettings_omnibus|TestAcc.*_RunDependent)]"
78
+ total : 5
79
+ index : 3
80
+ - test_suite : " Standard Tests"
81
+ list_tests : " [^(TestAccTFESAMLSettings_omnibus|TestAcc.*_RunDependent)]"
82
+ total : 5
83
+ index : 4
84
+ # Dependent tests with 1-runner matrix
85
+ - test_suite : " Dependent Tests"
86
+ list_tests : " TestAcc.*_RunDependent"
87
+ total : 1
88
+ index : 0
89
+ steps :
38
90
- uses : actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
39
91
40
92
- uses : ./.github/actions/test-provider-tfe
41
93
with :
42
94
matrix_index : ${{ matrix.index }}
43
95
matrix_total : ${{ matrix.total }}
44
- hostname : ${{ fromJSON(steps.tflocal .outputs.workspace-outputs-json).ngrok_domain }}
45
- token : ${{ fromJSON(steps.tflocal .outputs.workspace-outputs-json).tfe_token }}
96
+ hostname : ${{ needs.setup .outputs.hostname }}
97
+ token : ${{ needs.setup .outputs.token }}
46
98
testing-github-token : ${{ secrets.TESTING_GITHUB_TOKEN }}
47
- admin_configuration_token : ${{ fromJSON(steps.tflocal.outputs.workspace-outputs-json).tfe_admin_token_by_role.configuration }}
48
- admin_provision_licenses_token : ${{ fromJSON(steps.tflocal.outputs.workspace-outputs-json).tfe_admin_token_by_role.provision-licenses }}
49
- admin_security_maintenance_token : ${{ fromJSON(steps.tflocal.outputs.workspace-outputs-json).tfe_admin_token_by_role.security-maintenance }}
50
- admin_site_admin_token : ${{ fromJSON(steps.tflocal.outputs.workspace-outputs-json).tfe_admin_token_by_role.site-admin }}
51
- admin_subscription_token : ${{ fromJSON(steps.tflocal.outputs.workspace-outputs-json).tfe_admin_token_by_role.subscription }}
52
- admin_support_token : ${{ fromJSON(steps.tflocal.outputs.workspace-outputs-json).tfe_admin_token_by_role.support }}
53
- admin_version_maintenance_token : ${{ fromJSON(steps.tflocal.outputs.workspace-outputs-json).tfe_admin_token_by_role.version-maintenance }}
54
- # Run terminal cmd 'go help testflag' to learn more about -list flag
55
- # action.yml uses https://github.com/hashicorp-forge/go-test-split-action/blob/main/action.yml to split acceptance tests
56
- # which runs against all tests using the list arg
57
- # lists_tests regex is used to skip the TestAccTFESAMLSettings_omnibus test suite for CI tests only
58
- list_tests : " [^(TestAccTFESAMLSettings_omnibus)]"
99
+ admin_configuration_token : ${{ needs.setup.outputs.admin_configuration_token }}
100
+ admin_provision_licenses_token : ${{ needs.setup.outputs.admin_provision_licenses_token }}
101
+ admin_security_maintenance_token : ${{ needs.setup.outputs.admin_security_maintenance_token }}
102
+ admin_site_admin_token : ${{ needs.setup.outputs.admin_site_admin_token }}
103
+ admin_subscription_token : ${{ needs.setup.outputs.admin_subscription_token }}
104
+ admin_support_token : ${{ needs.setup.outputs.admin_support_token }}
105
+ admin_version_maintenance_token : ${{ needs.setup.outputs.admin_version_maintenance_token }}
106
+ list_tests : ${{ matrix.list_tests }}
59
107
60
108
tests-combine-summaries :
61
109
name : Combine Test Reports
73
121
run : npm install -g junit-report-merger
74
122
75
123
- name : Merge reports
76
- run : jrm ./ci-summary-provider.xml "junit-test-summary-0/*.xml" "junit-test-summary-1/*.xml" "junit-test-summary-2/*.xml" "junit-test-summary-3/*.xml" "junit-test-summary-4/*.xml"
124
+ run : |
125
+ # Dynamically find all junit XML files and merge them
126
+ jrm ./ci-summary-provider.xml junit-*-summary-*/*.xml
77
127
78
128
- name : Upload test artifacts
79
129
uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
0 commit comments