-
Notifications
You must be signed in to change notification settings - Fork 0
142 lines (141 loc) · 3.56 KB
/
verify.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
# SPDX-FileCopyrightText: The terraform-provider-migadu Authors
# SPDX-License-Identifier: 0BSD
name: Verify Commits
on:
push:
branches: [ main ]
paths:
- .github/workflows/verify.yml
- go.mod
- go.sum
- main.go
- docs/**
- examples/**
- internal/**
- migadu/**
- terratest/**
- tools/**
pull_request:
branches: [ main ]
paths:
- .github/workflows/verify.yml
- go.mod
- go.sum
- main.go
- docs/**
- examples/**
- internal/**
- migadu/**
- terratest/**
- tools/**
jobs:
build:
name: Build Project
runs-on: ubuntu-latest
steps:
- id: checkout
name: Checkout
uses: actions/checkout@v3
- id: setup_go
name: Set up Go
uses: actions/setup-go@v4
with:
go-version-file: go.mod
cache: true
- id: lint
name: Lint Go Code
uses: golangci/golangci-lint-action@v3
with:
version: latest
skip-pkg-cache: true
skip-build-cache: true
args: --timeout=10m
- id: generate_docs
name: Generate Documentation
run: go generate
- id: verify_docs
name: Verify Documentation
run: |
git diff --compact-summary --exit-code || \
(echo "*** Unexpected differences after code generation. Run 'make docs' and commit."; exit 1)
- id: build
name: Build Provider
run: go build -v ./...
env:
CGO_ENABLED: 0
test:
name: Tests on ${{ matrix.os }} with TF ${{ matrix.terraform }}
needs: build
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- macos-latest
- windows-latest
- ubuntu-latest
terraform:
- 1.0.*
- 1.1.*
- 1.2.*
- 1.3.*
steps:
- id: checkout
name: Checkout
uses: actions/checkout@v3
- id: setup_go
name: Set up Go
uses: actions/setup-go@v4
with:
go-version-file: go.mod
cache: true
- id: setup_terraform
name: Setup Terraform
uses: hashicorp/setup-terraform@v2
with:
terraform_version: ${{ matrix.terraform }}
terraform_wrapper: false
- id: client_tests
name: Client Tests
run: go test -v -cover -parallel=4 -timeout=600s -tags simulator ./migadu/...
- id: provider_tests
name: Provider Tests
run: go test -v -cover -parallel=4 -timeout=600s -tags simulator ./internal/provider/
env:
TF_ACC: "1"
terratest:
name: Terratest Tests with TF ${{ matrix.terraform }}
needs: build
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
terraform:
- 1.0.*
- 1.1.*
- 1.2.*
- 1.3.*
steps:
- id: checkout
name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- id: setup_go
name: Set up Go
uses: actions/setup-go@v4
with:
go-version-file: go.mod
cache: true
- id: setup_terraform
name: Setup Terraform
uses: hashicorp/setup-terraform@v2
with:
terraform_version: ${{ matrix.terraform }}
terraform_wrapper: false
- id: install
name: Install Provider
run: make install
- id: terratest
name: Run Terratest Tests
run: go test -parallel=4 -timeout=600s -tags simulator ./terratest/tests