@@ -3,7 +3,19 @@ on: push
3
3
name : Plugin Patch Test
4
4
5
5
jobs :
6
- test_plugin_ec2 :
6
+ strategy :
7
+ matrix :
8
+ service_partition : [
9
+ {
10
+ " service " : " ec2" ,
11
+ "service_test": "terraform-provider-aws/internal/service/ec2/ec2_host_data_source_test.go::TestAccEC2HostDataSource_basic terraform-provider-aws/internal/service/ec2/ec2_host_data_source_test.go::TestAccEC2HostDataSource_filter terraform-provider-aws/internal/service/ec2/ec2_host_test.go::TestAccEC2Host_basic terraform-provider-aws/internal/service/ec2/ec2_host_test.go::TestAccEC2Host_disappears terraform-provider-aws/internal/service/ec2/ec2_host_test.go::TestAccEC2Host_instanceFamily terraform-provider-aws/internal/service/ec2/ec2_host_test.go::TestAccEC2Host_tags terraform-provider-aws/internal/service/ec2/ec2_instance_data_source_test.go::TestAccEC2InstanceDataSource_basic terraform-provider-aws/internal/service/ec2/ec2_instance_data_source_test.go::TestAccEC2InstanceDataSource_tags terraform-provider-aws/internal/service/ec2/ec2_instance_data_source_test.go::TestAccEC2InstanceDataSource_azUserData terraform-provider-aws/internal/service/ec2/ec2_instance_data_source_test.go::TestAccEC2InstanceDataSource_RootBlockDevice_kmsKeyID terraform-provider-aws/internal/service/ec2/ec2_instance_data_source_test.go::TestAccEC2InstanceDataSource_rootInstanceStore terraform-provider-aws/internal/service/ec2/ec2_instance_data_source_test.go::TestAccEC2InstanceDataSource_privateIP terraform-provider-aws/internal/service/ec2/ec2_instance_data_source_test.go::TestAccEC2InstanceDataSource_keyPair terraform-provider-aws/internal/service/ec2/ec2_instance_data_source_test.go::TestAccEC2InstanceDataSource_vpc terraform-provider-aws/internal/service/ec2/ec2_instance_data_source_test.go::TestAccEC2InstanceDataSource_placementGroup terraform-provider-aws/internal/service/ec2/ec2_instance_data_source_test.go::TestAccEC2InstanceDataSource_securityGroups terraform-provider-aws/internal/service/ec2/ec2_instance_data_source_test.go::TestAccEC2InstanceDataSource_vpcSecurityGroups terraform-provider-aws/internal/service/ec2/ec2_instance_data_source_test.go::TestAccEC2InstanceDataSource_getUserData terraform-provider-aws/internal/service/ec2/ec2_instance_data_source_test.go::TestAccEC2InstanceDataSource_GetUserData_noUserData terraform-provider-aws/internal/service/ec2/ec2_instance_data_source_test.go::TestAccEC2InstanceDataSource_timeout",
12
+ },
13
+ {
14
+ " service " : " rds" ,
15
+ "service_test": "terraform-provider-aws/internal/service/rds/cluster_data_source_test.go::TestAccRDSClusterDataSource_basic terraform-provider-aws/internal/service/rds/cluster_instance_test.go::TestAccRDSClusterInstance_PerformanceInsightsEnabled_auroraMySQL1 terraform-provider-aws/internal/service/rds/cluster_instance_test.go::TestAccRDSClusterInstance_PerformanceInsightsEnabled_auroraPostgresql terraform-provider-aws/internal/service/rds/cluster_instance_test.go::TestAccRDSClusterInstance_PerformanceInsightsKMSKeyID_auroraMySQL1 terraform-provider-aws/internal/service/rds/cluster_instance_test.go::TestAccRDSClusterInstance_PerformanceInsightsKMSKeyIDAuroraMySQL1_defaultKeyToCustomKey terraform-provider-aws/internal/service/rds/cluster_instance_test.go::TestAccRDSClusterInstance_performanceInsightsRetentionPeriod terraform-provider-aws/internal/service/rds/cluster_instance_test.go::TestAccRDSClusterInstance_PerformanceInsightsKMSKeyID_auroraPostgresql terraform-provider-aws/internal/service/rds/cluster_instance_test.go::TestAccRDSClusterInstance_PerformanceInsightsKMSKeyIDAuroraPostgresql_defaultKeyToCustomKey terraform-provider-aws/internal/service/rds/cluster_test.go::TestAccRDSCluster_disappears terraform-provider-aws/internal/service/rds/cluster_test.go::TestAccRDSCluster_tags terraform-provider-aws/internal/service/rds/cluster_test.go::TestAccRDSCluster_identifierGenerated terraform-provider-aws/internal/service/rds/cluster_test.go::TestAccRDSCluster_identifierPrefix",
16
+ },
17
+ ]
18
+ test_plugin :
7
19
runs-on : ubuntu-latest
8
20
9
21
steps :
@@ -38,10 +50,10 @@ jobs:
38
50
cd ../
39
51
python -m terraform_pytest.main patch
40
52
41
- - name : Build EC2 Binary
53
+ - name : Build ${{ matrix.service_partition.service }} Binary
42
54
run : |
43
55
source .venv/bin/activate
44
- python -m terraform_pytest.main build -s ec2
56
+ python -m terraform_pytest.main build -s ${{ matrix.service_partition.service }}
45
57
ls -la ./test-bin
46
58
47
59
- name : Setup LocalStack
@@ -63,100 +75,16 @@ jobs:
63
75
localstack extensions install "git+https://github.com/localstack/localstack-moto-test-coverage/#egg=collect-raw-metric-data-extension&subdirectory=collect-raw-metric-data-extension"
64
76
fi
65
77
66
- - name : Run EC2 - Create Instance Tests
67
- run : |
68
- source .venv/bin/activate
69
-
70
- export LOCALSTACK_API_KEY=${{ secrets.LOCALSTACK_API_KEY }}
71
- options="-s -v --ls-start --gather-metrics"
72
-
73
- ec2_test="terraform-provider-aws/internal/service/ec2/ec2_host_data_source_test.go::TestAccEC2HostDataSource_basic terraform-provider-aws/internal/service/ec2/ec2_host_data_source_test.go::TestAccEC2HostDataSource_filter terraform-provider-aws/internal/service/ec2/ec2_host_test.go::TestAccEC2Host_basic terraform-provider-aws/internal/service/ec2/ec2_host_test.go::TestAccEC2Host_disappears terraform-provider-aws/internal/service/ec2/ec2_host_test.go::TestAccEC2Host_instanceFamily terraform-provider-aws/internal/service/ec2/ec2_host_test.go::TestAccEC2Host_tags terraform-provider-aws/internal/service/ec2/ec2_instance_data_source_test.go::TestAccEC2InstanceDataSource_basic terraform-provider-aws/internal/service/ec2/ec2_instance_data_source_test.go::TestAccEC2InstanceDataSource_tags terraform-provider-aws/internal/service/ec2/ec2_instance_data_source_test.go::TestAccEC2InstanceDataSource_azUserData terraform-provider-aws/internal/service/ec2/ec2_instance_data_source_test.go::TestAccEC2InstanceDataSource_RootBlockDevice_kmsKeyID terraform-provider-aws/internal/service/ec2/ec2_instance_data_source_test.go::TestAccEC2InstanceDataSource_rootInstanceStore terraform-provider-aws/internal/service/ec2/ec2_instance_data_source_test.go::TestAccEC2InstanceDataSource_privateIP terraform-provider-aws/internal/service/ec2/ec2_instance_data_source_test.go::TestAccEC2InstanceDataSource_keyPair terraform-provider-aws/internal/service/ec2/ec2_instance_data_source_test.go::TestAccEC2InstanceDataSource_vpc terraform-provider-aws/internal/service/ec2/ec2_instance_data_source_test.go::TestAccEC2InstanceDataSource_placementGroup terraform-provider-aws/internal/service/ec2/ec2_instance_data_source_test.go::TestAccEC2InstanceDataSource_securityGroups terraform-provider-aws/internal/service/ec2/ec2_instance_data_source_test.go::TestAccEC2InstanceDataSource_vpcSecurityGroups terraform-provider-aws/internal/service/ec2/ec2_instance_data_source_test.go::TestAccEC2InstanceDataSource_getUserData terraform-provider-aws/internal/service/ec2/ec2_instance_data_source_test.go::TestAccEC2InstanceDataSource_GetUserData_noUserData terraform-provider-aws/internal/service/ec2/ec2_instance_data_source_test.go::TestAccEC2InstanceDataSource_timeout"
74
- python -m pytest --junitxml=target/reports/pytest.xml $(python terraform_pytest/get_tf_partitions.py $ec2_test $options
75
-
76
- - name : Archive Test Result
77
- uses : actions/upload-artifact@v3
78
- if : always()
79
- with :
80
- name : test-metrics
81
- path : target/reports
82
-
83
- - name : Publish ${{ matrix.service }} Test Results
84
- uses : EnricoMi/publish-unit-test-result-action@v2
85
- if : always()
86
- with :
87
- junit_files : target/reports/*.xml
88
- check_name : ${{ matrix.service }} Terraform Test Results
89
-
90
- test_plugin_rds :
91
- runs-on : ubuntu-latest
92
-
93
- steps :
94
-
95
- - uses : actions/checkout@v3
96
- with :
97
- submodules : ' true'
98
-
99
- - uses : actions/setup-go@v3
100
- with :
101
- go-version : ' 1.20.x'
102
- cache : true
103
- cache-dependency-path : terraform-provider-aws/go.sum
104
-
105
- - name : Set up Python 3.10.5
106
- uses : actions/setup-python@v4
107
- with :
108
- python-version : ' 3.10.5'
109
- cache : ' pip'
110
-
111
- - name : Install system dependencies
112
- run : |
113
- python -m venv .venv
114
- source .venv/bin/activate
115
- pip install --upgrade pip
116
- pip install -r requirements.txt
117
-
118
- - name : Patch Terraform Provider
119
- run : |
120
- source .venv/bin/activate
121
- cd terraform-provider-aws && go mod vendor
122
- cd ../
123
- python -m terraform_pytest.main patch
124
-
125
- - name : Build RDS Binary
126
- run : |
127
- source .venv/bin/activate
128
- python -m terraform_pytest.main build -s rds
129
- ls -la ./test-bin
130
-
131
- - name : Setup LocalStack
78
+ - name : Run ${{ matrix.service_partition.service }} Tests
132
79
env :
133
- LOCALSTACK_API_KEY : ${{ secrets.LOCALSTACK_API_KEY }}
134
- TMP_USER : ${{ secrets.TMP_USER }}
135
- TMP_PW : ${{ secrets.TMP_PW }}
136
- run : |
137
- source .venv/bin/activate
138
- pip install --pre localstack
139
- enable_pro=${{ inputs.enable-pro || 'true' }}
140
- if [[ $enable_pro != 'true' ]]
141
- then
142
- docker pull localstack/localstack
143
- else
144
- docker pull localstack/localstack-pro
145
- localstack auth login -u $TMP_USER -p $TMP_PW # login is currently required
146
- localstack extensions init
147
- localstack extensions install "git+https://github.com/localstack/localstack-moto-test-coverage/#egg=collect-raw-metric-data-extension&subdirectory=collect-raw-metric-data-extension"
148
- fi
149
-
150
- - name : Run RDS - Create Instance Tests
80
+ SERVICE : ${{ matrix.service_partition.service }}
151
81
run : |
152
82
source .venv/bin/activate
153
83
154
84
export LOCALSTACK_API_KEY=${{ secrets.LOCALSTACK_API_KEY }}
155
85
options="-s -v --ls-start --gather-metrics"
156
86
157
- rds_test="terraform-provider-aws/internal/service/rds/cluster_data_source_test.go::TestAccRDSClusterDataSource_basic terraform-provider-aws/internal/service/rds/cluster_instance_test.go::TestAccRDSClusterInstance_PerformanceInsightsEnabled_auroraMySQL1 terraform-provider-aws/internal/service/rds/cluster_instance_test.go::TestAccRDSClusterInstance_PerformanceInsightsEnabled_auroraPostgresql terraform-provider-aws/internal/service/rds/cluster_instance_test.go::TestAccRDSClusterInstance_PerformanceInsightsKMSKeyID_auroraMySQL1 terraform-provider-aws/internal/service/rds/cluster_instance_test.go::TestAccRDSClusterInstance_PerformanceInsightsKMSKeyIDAuroraMySQL1_defaultKeyToCustomKey terraform-provider-aws/internal/service/rds/cluster_instance_test.go::TestAccRDSClusterInstance_performanceInsightsRetentionPeriod terraform-provider-aws/internal/service/rds/cluster_instance_test.go::TestAccRDSClusterInstance_PerformanceInsightsKMSKeyID_auroraPostgresql terraform-provider-aws/internal/service/rds/cluster_instance_test.go::TestAccRDSClusterInstance_PerformanceInsightsKMSKeyIDAuroraPostgresql_defaultKeyToCustomKey terraform-provider-aws/internal/service/rds/cluster_test.go::TestAccRDSCluster_disappears terraform-provider-aws/internal/service/rds/cluster_test.go::TestAccRDSCluster_tags terraform-provider-aws/internal/service/rds/cluster_test.go::TestAccRDSCluster_identifierGenerated terraform-provider-aws/internal/service/rds/cluster_test.go::TestAccRDSCluster_identifierPrefix"
158
-
159
- python -m pytest --junitxml=target/reports/pytest.xml $rds_test $options
87
+ python -m pytest --junitxml=target/reports/pytest.xml ${{ matrix.service_partition.service_test }} $options
160
88
161
89
- name : Archive Test Result
162
90
uses : actions/upload-artifact@v3
165
93
name : test-metrics
166
94
path : target/reports
167
95
168
- - name : Publish ${{ matrix.service }} Test Results
96
+ - name : Publish ${{ matrix.service_partition. service }} Test Results
169
97
uses : EnricoMi/publish-unit-test-result-action@v2
170
98
if : always()
171
99
with :
172
100
junit_files : target/reports/*.xml
173
- check_name : ${{ matrix.service }} Terraform Test Results
101
+ check_name : ${{ matrix.service_partition. service }} Terraform Test Results
0 commit comments