Skip to content

Commit 282e3ee

Browse files
committed
simplify with matrix
1 parent e69c17e commit 282e3ee

File tree

1 file changed

+20
-92
lines changed

1 file changed

+20
-92
lines changed

.github/workflows/plugin-patch.yml

Lines changed: 20 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,19 @@ on: push
33
name: Plugin Patch Test
44

55
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:
719
runs-on: ubuntu-latest
820

921
steps:
@@ -38,10 +50,10 @@ jobs:
3850
cd ../
3951
python -m terraform_pytest.main patch
4052
41-
- name: Build EC2 Binary
53+
- name: Build ${{ matrix.service_partition.service }} Binary
4254
run: |
4355
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 }}
4557
ls -la ./test-bin
4658
4759
- name: Setup LocalStack
@@ -63,100 +75,16 @@ jobs:
6375
localstack extensions install "git+https://github.com/localstack/localstack-moto-test-coverage/#egg=collect-raw-metric-data-extension&subdirectory=collect-raw-metric-data-extension"
6476
fi
6577
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
13279
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 }}
15181
run: |
15282
source .venv/bin/activate
15383
15484
export LOCALSTACK_API_KEY=${{ secrets.LOCALSTACK_API_KEY }}
15585
options="-s -v --ls-start --gather-metrics"
15686
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
16088
16189
- name: Archive Test Result
16290
uses: actions/upload-artifact@v3
@@ -165,9 +93,9 @@ jobs:
16593
name: test-metrics
16694
path: target/reports
16795

168-
- name: Publish ${{ matrix.service }} Test Results
96+
- name: Publish ${{ matrix.service_partition.service }} Test Results
16997
uses: EnricoMi/publish-unit-test-result-action@v2
17098
if: always()
17199
with:
172100
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

Comments
 (0)