Skip to content

Commit 681b681

Browse files
authored
Merge pull request #770 from SumoLogic/improve-workflow
improve the matrix test workflow
2 parents 60a8cf2 + 5b7aa20 commit 681b681

File tree

1 file changed

+53
-62
lines changed

1 file changed

+53
-62
lines changed

.github/workflows/test.yml

Lines changed: 53 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,8 @@ permissions:
77
on:
88
pull_request:
99
branches: [ master ]
10-
paths-ignore:
11-
- 'README.md'
12-
- 'CHANGELOG.md'
13-
- 'website/**'
1410
push:
1511
branches: [ master ]
16-
paths-ignore:
17-
- 'README.md'
18-
- 'CHANGELOG.md'
19-
- 'website/**'
2012
# For systems with an upstream API that could drift unexpectedly (like most SaaS systems, etc.),
2113
# we recommend testing at a regular interval not necessarily tied to code changes. This will
2214
# ensure you are alerted to something breaking due to an API change, even if the code did not
@@ -36,17 +28,21 @@ jobs:
3628
outputs:
3729
run_tests: ${{ steps.filter.outputs.run_tests }}
3830
steps:
39-
- uses: dorny/paths-filter@v2
31+
- uses: actions/[email protected]
32+
with:
33+
fetch-depth: 0 # so we can diff against base
34+
- uses: dorny/paths-filter@v3
4035
id: filter
4136
with:
37+
predicate-quantifier: 'every'
4238
filters: |
4339
run_tests:
44-
- '!CHANGELOG.md'
40+
- '**'
4541
- '!README.md'
42+
- '!CHANGELOG.md'
4643
- '!website/**'
4744
# ensure the code builds...
4845
build:
49-
if: needs.should_test.outputs.run_tests == 'true'
5046
needs: should_test
5147
name: Build
5248
runs-on: ubuntu-latest
@@ -70,10 +66,9 @@ jobs:
7066
go build -v .
7167
# run acceptance tests in a matrix with Terraform core versions
7268
test:
73-
if: needs.should_test.outputs.run_tests == 'true'
74-
needs: build
7569
name: Matrix Test
7670
runs-on: ubuntu-latest
71+
needs: [ should_test, build ]
7772
timeout-minutes: 90
7873
strategy:
7974
fail-fast: false
@@ -82,56 +77,52 @@ jobs:
8277
terraform:
8378
- '1.0.3'
8479
steps:
80+
- name: Set up Go
81+
uses: actions/[email protected]
82+
with:
83+
go-version: '1.22'
84+
id: go
8585

86-
- name: Set up Go
87-
uses: actions/[email protected]
88-
with:
89-
go-version: '1.22'
90-
id: go
91-
92-
- name: Check out code into the Go module directory
93-
uses: actions/[email protected]
94-
95-
- name: Get dependencies
96-
run: |
97-
go mod download
86+
- name: Check out code into the Go module directory
87+
uses: actions/[email protected]
9888

99-
- name: TF acceptance tests
100-
timeout-minutes: 90
101-
env:
102-
TF_ACC: "1"
103-
TF_ACC_TERRAFORM_VERSION: ${{ matrix.terraform }}
89+
- name: Get dependencies
90+
run: |
91+
go mod download
10492
105-
# Set whatever additional acceptance test env vars here. You can
106-
# optionally use data from your repository secrets using the
107-
# following syntax:
108-
# SOME_VAR: ${{ secrets.SOME_VAR }}
109-
SUMOLOGIC_ACCESSID: ${{ secrets.SUMOLOGIC_ACCESSID }}
110-
SUMOLOGIC_ACCESSKEY: ${{ secrets.SUMOLOGIC_ACCESSKEY }}
111-
SUMOLOGIC_ENVIRONMENT: ${{ secrets.SUMOLOGIC_ENVIRONMENT }}
112-
SUMOLOGIC_TEST_BUCKET_NAME: ${{ secrets.SUMOLOGIC_TEST_BUCKET_NAME }}
113-
SUMOLOGIC_TEST_CONSUMER_GROUP: ${{ secrets.SUMOLOGIC_TEST_CONSUMER_GROUP }}
114-
SUMOLOGIC_TEST_EVENT_HUB: ${{ secrets.SUMOLOGIC_TEST_EVENT_HUB }}
115-
SUMOLOGIC_TEST_GOOGLE_APPLICATION_CREDENTIALS: ${{ secrets.SUMOLOGIC_TEST_GOOGLE_APPLICATION_CREDENTIALS }}
116-
SUMOLOGIC_TEST_NAMESPACE: ${{ secrets.SUMOLOGIC_TEST_NAMESPACE }}
117-
SUMOLOGIC_TEST_REGION: ${{ secrets.SUMOLOGIC_TEST_REGION }}
118-
SUMOLOGIC_TEST_ROLE_ARN: ${{ secrets.SUMOLOGIC_TEST_ROLE_ARN }}
119-
SUMOLOGIC_TEST_SAS_KEY: ${{ secrets.SUMOLOGIC_TEST_SAS_KEY }}
120-
SUMOLOGIC_TEST_SAS_KEY_NAME: ${{ secrets.SUMOLOGIC_TEST_SAS_KEY_NAME }}
121-
SUMOLOGIC_DATA_FORWARDING_BUCKET: ${{ secrets.SUMOLOGIC_DATA_FORWARDING_BUCKET }}
122-
SUMOLOGIC_DATA_FORWARDING_ROLE_ARN: ${{ secrets.SUMOLOGIC_DATA_FORWARDING_ROLE_ARN }}
123-
SUMOLOGIC_DATA_FORWARDING_AWS_REGION: ${{ secrets.SUMOLOGIC_DATA_FORWARDING_AWS_REGION }}
124-
SUMOLOGIC_TEST_AZURE_TENANT_ID: ${{ secrets.SUMOLOGIC_TEST_AZURE_TENANT_ID }}
125-
SUMOLOGIC_TEST_AZURE_CLIENT_ID: ${{ secrets.SUMOLOGIC_TEST_AZURE_CLIENT_ID }}
126-
SUMOLOGIC_TEST_AZURE_CLIENT_SECRET: ${{ secrets.SUMOLOGIC_TEST_AZURE_CLIENT_SECRET }}
93+
- name: TF acceptance tests
94+
timeout-minutes: 90
95+
run: |
96+
if [ "${{ needs.should_test.outputs.run_tests }}" = "false" ]; then
97+
echo "Skipping tests for Terraform ${{ matrix.terraform }} — docs or workflows changes only."
98+
exit 0
99+
fi
100+
101+
echo "Running tests for Terraform ${{ matrix.terraform }}"
102+
go test -timeout 0 -v -cover ./sumologic/
103+
env:
104+
TF_ACC: "1"
105+
TF_ACC_TERRAFORM_VERSION: ${{ matrix.terraform }}
127106

128-
# disable go test timeout. We rely on GitHub action timeout.
129-
run: |
130-
go test -timeout 0 -v -cover ./sumologic/
131-
# skip acceptance tests
132-
skip:
133-
if: needs.should_test.outputs.run_tests != 'true'
134-
needs: should_test
135-
runs-on: ubuntu-latest
136-
steps:
137-
- run: echo "Skipping tests because only docs or website files changed."
107+
# Set whatever additional acceptance test env vars here. You can
108+
# optionally use data from your repository secrets using the
109+
# following syntax:
110+
# SOME_VAR: ${{ secrets.SOME_VAR }}
111+
SUMOLOGIC_ACCESSID: ${{ secrets.SUMOLOGIC_ACCESSID }}
112+
SUMOLOGIC_ACCESSKEY: ${{ secrets.SUMOLOGIC_ACCESSKEY }}
113+
SUMOLOGIC_ENVIRONMENT: ${{ secrets.SUMOLOGIC_ENVIRONMENT }}
114+
SUMOLOGIC_TEST_BUCKET_NAME: ${{ secrets.SUMOLOGIC_TEST_BUCKET_NAME }}
115+
SUMOLOGIC_TEST_CONSUMER_GROUP: ${{ secrets.SUMOLOGIC_TEST_CONSUMER_GROUP }}
116+
SUMOLOGIC_TEST_EVENT_HUB: ${{ secrets.SUMOLOGIC_TEST_EVENT_HUB }}
117+
SUMOLOGIC_TEST_GOOGLE_APPLICATION_CREDENTIALS: ${{ secrets.SUMOLOGIC_TEST_GOOGLE_APPLICATION_CREDENTIALS }}
118+
SUMOLOGIC_TEST_NAMESPACE: ${{ secrets.SUMOLOGIC_TEST_NAMESPACE }}
119+
SUMOLOGIC_TEST_REGION: ${{ secrets.SUMOLOGIC_TEST_REGION }}
120+
SUMOLOGIC_TEST_ROLE_ARN: ${{ secrets.SUMOLOGIC_TEST_ROLE_ARN }}
121+
SUMOLOGIC_TEST_SAS_KEY: ${{ secrets.SUMOLOGIC_TEST_SAS_KEY }}
122+
SUMOLOGIC_TEST_SAS_KEY_NAME: ${{ secrets.SUMOLOGIC_TEST_SAS_KEY_NAME }}
123+
SUMOLOGIC_DATA_FORWARDING_BUCKET: ${{ secrets.SUMOLOGIC_DATA_FORWARDING_BUCKET }}
124+
SUMOLOGIC_DATA_FORWARDING_ROLE_ARN: ${{ secrets.SUMOLOGIC_DATA_FORWARDING_ROLE_ARN }}
125+
SUMOLOGIC_DATA_FORWARDING_AWS_REGION: ${{ secrets.SUMOLOGIC_DATA_FORWARDING_AWS_REGION }}
126+
SUMOLOGIC_TEST_AZURE_TENANT_ID: ${{ secrets.SUMOLOGIC_TEST_AZURE_TENANT_ID }}
127+
SUMOLOGIC_TEST_AZURE_CLIENT_ID: ${{ secrets.SUMOLOGIC_TEST_AZURE_CLIENT_ID }}
128+
SUMOLOGIC_TEST_AZURE_CLIENT_SECRET: ${{ secrets.SUMOLOGIC_TEST_AZURE_CLIENT_SECRET }}

0 commit comments

Comments
 (0)