-
Notifications
You must be signed in to change notification settings - Fork 30
137 lines (130 loc) · 3.85 KB
/
nightly-ecs-examples-validator.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
name: Nighly ECS example validator
on:
workflow_dispatch:
jobs:
get-go-version:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./test/acceptance
outputs:
go-version: ${{ steps.get-go-version.outputs.go-version }}
steps:
- name: Checkout
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Determine Go version
id: get-go-version
run: |
echo "Building with Go $(cat .go-version)"
echo "go-version=$(cat .go-version)" >> "$GITHUB_OUTPUT"
go-fmt-and-lint-acceptance:
runs-on: ubuntu-latest
needs:
- get-go-version
defaults:
run:
working-directory: ./test/acceptance
steps:
- name: Checkout
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Setup Go
uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0
with:
go-version: ${{ needs.get-go-version.outputs.go-version }}
cache-dependency-path: ./test/acceptance/go.sum
- name: Go CI lint
uses: golangci/golangci-lint-action@3a919529898de77ec3da873e3063ca4b10e7f5cc # v3.7.0
with:
args: "--verbose --enable gofmt"
only-new-issues: false
skip-pkg-cache: true
skip-build-cache: true
working-directory: ./test/acceptance
- name: Lint Consul retry
run: |
go install github.com/hashicorp/[email protected]
lint-consul-retry
terraform-fmt:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Setup Terraform
uses: hashicorp/setup-terraform@v3
with:
terraform_version: 1.4.2
- name: Validate
run: terraform fmt -check -recursive .
single-cluster:
needs:
- terraform-fmt
- go-fmt-and-lint-acceptance
- get-go-version
strategy:
matrix:
name:
- Consul ECS on Fargate
- Consul ECS on EC2
- Consul ECS with HCP
include:
- name: Consul ECS on Fargate
scenario: FARGATE
- name: Consul ECS on EC2
scenario: EC2
- name: Consul ECS with HCP
scenario: HCP
fail-fast: false
uses: ./.github/workflows/reusable-ecs-example-validator.yml
with:
name: ${{ matrix.name }}
scenario: ${{ matrix.scenario }}
go-version: ${{ needs.get-go-version.outputs.go-version }}
secrets: inherit
gateways:
needs:
- single-cluster
- get-go-version
strategy:
matrix:
name:
- API Gateway
- Terminating Gateway
include:
- name: API Gateway
scenario: API_GATEWAY
- name: Terminating Gateway
scenario: TERMINATING_GATEWAY
fail-fast: false
uses: ./.github/workflows/reusable-ecs-example-validator.yml
with:
name: ${{ matrix.name }}
scenario: ${{ matrix.scenario }}
go-version: ${{ needs.get-go-version.outputs.go-version }}
secrets: inherit
multi-cluster:
needs:
- gateways
- get-go-version
strategy:
matrix:
name:
- Cluster Peering
- WAN Federation with Mesh gateways
- Locality Aware Routing
- Service Sameness
include:
- name: Cluster Peering
scenario: CLUSTER_PEERING
- name: WAN Federation with Mesh gateways
scenario: WAN_FEDERATION
- name: Locality Aware Routing
scenario: LOCALITY_AWARE_ROUTING
- name: Service Sameness
scenario: SERVICE_SAMENESS
fail-fast: false
uses: ./.github/workflows/reusable-ecs-example-validator.yml
with:
name: ${{ matrix.name }}
scenario: ${{ matrix.scenario }}
go-version: ${{ needs.get-go-version.outputs.go-version }}
secrets: inherit