@@ -16,20 +16,18 @@ jobs:
16
16
- uses : actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
17
17
- uses : ./.github/actions/lint-provider-tfe
18
18
19
- setup :
20
- name : Setup Test Environment
19
+ tests :
20
+ name : tests
21
21
runs-on : ubuntu-latest
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 }}
22
+ timeout-minutes : 40
23
+ strategy :
24
+ fail-fast : false
25
+ matrix :
26
+ total : [5]
27
+ index : [0, 1, 2, 3, 4]
32
28
steps :
29
+ - uses : actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
30
+
33
31
- name : Fetch Outputs
34
32
id : tflocal-raw
35
33
uses : hashicorp-forge/terraform-cloud-action/outputs@5583d5f554d268ac91b3c37fd0a5e9da2c78c017 # v1.1.0
@@ -51,69 +49,73 @@ jobs:
51
49
echo "admin_support_token=${{ fromJSON(steps.tflocal-raw.outputs.workspace-outputs-json).tfe_admin_token_by_role.support }}" >> $GITHUB_OUTPUT
52
50
echo "admin_version_maintenance_token=${{ fromJSON(steps.tflocal-raw.outputs.workspace-outputs-json).tfe_admin_token_by_role.version-maintenance }}" >> $GITHUB_OUTPUT
53
51
54
- tests :
55
- name : ${{ matrix.test_suite }}
52
+ - uses : ./.github/actions/test-provider-tfe
53
+ with :
54
+ matrix_index : ${{ matrix.index }}
55
+ matrix_total : ${{ matrix.total }}
56
+ hostname : ${{ steps.tflocal.outputs.hostname }}
57
+ token : ${{ steps.tflocal.outputs.token }}
58
+ testing_github_token : ${{ secrets.TESTING_GITHUB_TOKEN }}
59
+ admin_configuration_token : ${{ steps.tflocal.outputs.admin_configuration_token }}
60
+ admin_provision_licenses_token : ${{ steps.tflocal.outputs.admin_provision_licenses_token }}
61
+ admin_security_maintenance_token : ${{ steps.tflocal.outputs.admin_security_maintenance_token }}
62
+ admin_site_admin_token : ${{ steps.tflocal.outputs.admin_site_admin_token }}
63
+ admin_subscription_token : ${{ steps.tflocal.outputs.admin_subscription_token }}
64
+ admin_support_token : ${{ steps.tflocal.outputs.admin_support_token }}
65
+ admin_version_maintenance_token : ${{ steps.tflocal.outputs.admin_version_maintenance_token }}
66
+ list_tests : " [^(TestAccTFESAMLSettings_omnibus|TestAcc.*_RunDependent)]"
67
+
68
+ run-dependent-tests :
69
+ name : run-dependent-tests
56
70
runs-on : ubuntu-latest
57
- needs : setup
58
71
timeout-minutes : 40
59
72
strategy :
60
73
fail-fast : false
61
74
matrix :
62
- include :
63
- # Standard tests with 5-runner matrix
64
- - test_suite : " Standard Tests"
65
- test_name : " tests"
66
- list_tests : " [^(TestAccTFESAMLSettings_omnibus|TestAcc.*_RunDependent)]"
67
- total : 5
68
- index : 0
69
- - test_suite : " Standard Tests"
70
- test_name : " tests"
71
- list_tests : " [^(TestAccTFESAMLSettings_omnibus|TestAcc.*_RunDependent)]"
72
- total : 5
73
- index : 1
74
- - test_suite : " Standard Tests"
75
- test_name : " tests"
76
- list_tests : " [^(TestAccTFESAMLSettings_omnibus|TestAcc.*_RunDependent)]"
77
- total : 5
78
- index : 2
79
- - test_suite : " Standard Tests"
80
- test_name : " tests"
81
- list_tests : " [^(TestAccTFESAMLSettings_omnibus|TestAcc.*_RunDependent)]"
82
- total : 5
83
- index : 3
84
- - test_suite : " Standard Tests"
85
- test_name : " tests"
86
- list_tests : " [^(TestAccTFESAMLSettings_omnibus|TestAcc.*_RunDependent)]"
87
- total : 5
88
- index : 4
89
- # Dependent tests with 1-runner matrix
90
- - test_suite : " Dependent Tests"
91
- test_name : " run-dependent-tests"
92
- list_tests : " TestAcc.*_RunDependent"
93
- total : 1
94
- index : 0
75
+ total : [1]
76
+ index : [0]
95
77
steps :
96
78
- uses : actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
97
79
80
+ - name : Fetch Outputs
81
+ id : tflocal-raw
82
+ uses : hashicorp-forge/terraform-cloud-action/outputs@5583d5f554d268ac91b3c37fd0a5e9da2c78c017 # v1.1.0
83
+ with :
84
+ token : " ${{ secrets.TF_WORKFLOW_TFLOCAL_CLOUD_TFC_TOKEN }}"
85
+ organization : hashicorp-v2
86
+ workspace : tflocal-terraform-provider-tfe
87
+
88
+ - name : Parse Outputs
89
+ id : tflocal
90
+ run : |
91
+ echo "hostname=${{ fromJSON(steps.tflocal-raw.outputs.workspace-outputs-json).ngrok_domain }}" >> $GITHUB_OUTPUT
92
+ echo "token=${{ fromJSON(steps.tflocal-raw.outputs.workspace-outputs-json).tfe_token }}" >> $GITHUB_OUTPUT
93
+ echo "admin_configuration_token=${{ fromJSON(steps.tflocal-raw.outputs.workspace-outputs-json).tfe_admin_token_by_role.configuration }}" >> $GITHUB_OUTPUT
94
+ echo "admin_provision_licenses_token=${{ fromJSON(steps.tflocal-raw.outputs.workspace-outputs-json).tfe_admin_token_by_role.provision-licenses }}" >> $GITHUB_OUTPUT
95
+ echo "admin_security_maintenance_token=${{ fromJSON(steps.tflocal-raw.outputs.workspace-outputs-json).tfe_admin_token_by_role.security-maintenance }}" >> $GITHUB_OUTPUT
96
+ echo "admin_site_admin_token=${{ fromJSON(steps.tflocal-raw.outputs.workspace-outputs-json).tfe_admin_token_by_role.site-admin }}" >> $GITHUB_OUTPUT
97
+ echo "admin_subscription_token=${{ fromJSON(steps.tflocal-raw.outputs.workspace-outputs-json).tfe_admin_token_by_role.subscription }}" >> $GITHUB_OUTPUT
98
+ echo "admin_support_token=${{ fromJSON(steps.tflocal-raw.outputs.workspace-outputs-json).tfe_admin_token_by_role.support }}" >> $GITHUB_OUTPUT
99
+ echo "admin_version_maintenance_token=${{ fromJSON(steps.tflocal-raw.outputs.workspace-outputs-json).tfe_admin_token_by_role.version-maintenance }}" >> $GITHUB_OUTPUT
100
+
98
101
- uses : ./.github/actions/test-provider-tfe
99
102
with :
100
103
matrix_index : ${{ matrix.index }}
101
104
matrix_total : ${{ matrix.total }}
102
- hostname : ${{ needs.setup .outputs.hostname }}
103
- token : ${{ needs.setup .outputs.token }}
105
+ hostname : ${{ steps.tflocal .outputs.hostname }}
106
+ token : ${{ steps.tflocal .outputs.token }}
104
107
testing_github_token : ${{ secrets.TESTING_GITHUB_TOKEN }}
105
- admin_configuration_token : ${{ needs.setup.outputs.admin_configuration_token }}
106
- admin_provision_licenses_token : ${{ needs.setup.outputs.admin_provision_licenses_token }}
107
- admin_security_maintenance_token : ${{ needs.setup.outputs.admin_security_maintenance_token }}
108
- admin_site_admin_token : ${{ needs.setup.outputs.admin_site_admin_token }}
109
- admin_subscription_token : ${{ needs.setup.outputs.admin_subscription_token }}
110
- admin_support_token : ${{ needs.setup.outputs.admin_support_token }}
111
- admin_version_maintenance_token : ${{ needs.setup.outputs.admin_version_maintenance_token }}
112
- list_tests : ${{ matrix.list_tests }}
113
- test_name : ${{ matrix.test_name }}
108
+ admin_configuration_token : ${{ steps.tflocal.outputs.admin_configuration_token }}
109
+ admin_provision_licenses_token : ${{ steps.tflocal.outputs.admin_provision_licenses_token }}
110
+ admin_security_maintenance_token : ${{ steps.tflocal.outputs.admin_security_maintenance_token }}
111
+ admin_site_admin_token : ${{ steps.tflocal.outputs.admin_site_admin_token }}
112
+ admin_subscription_token : ${{ steps.tflocal.outputs.admin_subscription_token }}
113
+ admin_support_token : ${{ steps.tflocal.outputs.admin_support_token }}
114
+ admin_version_maintenance_token : ${{ steps.tflocal.outputs.admin_version_maintenance_token }}
115
+ list_tests : " TestAcc.*_RunDependent"
114
116
115
117
tests-combine-summaries :
116
- name : Combine Test Reports
118
+ name : tests-combine-summaries
117
119
needs : [ tests ]
118
120
runs-on : ubuntu-latest
119
121
steps :
@@ -129,8 +131,7 @@ jobs:
129
131
130
132
- name : Merge reports
131
133
run : |
132
- # Dynamically find all junit XML files and merge them
133
- jrm ./ci-summary-provider.xml junit-*-summary-*/*.xml
134
+ jrm ./ci-summary-provider.xml junit-tests-summary-*/*.xml
134
135
135
136
- name : Upload test artifacts
136
137
uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
@@ -139,14 +140,14 @@ jobs:
139
140
path : ./ci-summary-provider.xml
140
141
141
142
tests-summarize :
142
- name : Summarize Tests
143
- needs : [ tests ]
143
+ name : tests-summarize
144
+ needs : [ tests, run-dependent-tests ]
144
145
runs-on : ubuntu-latest
145
146
if : ${{ always() }}
146
147
steps :
147
148
- name : Check tests Status
148
149
run : |
149
- if [ "${{ needs.tests.result }}" = "success" ]; then
150
+ if [ "${{ needs.tests.result }}" = "success" ] && [ "${{ needs.run-dependent-tests.result }}" = "success" ] ; then
150
151
exit 0
151
152
fi
152
153
exit 1
0 commit comments