-
Notifications
You must be signed in to change notification settings - Fork 0
153 lines (119 loc) · 5.2 KB
/
cli-test.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
143
144
145
146
147
148
149
150
151
name: Testing Hava CLI
on:
workflow_dispatch:
inputs:
General Comments:
description: 'General Comments'
required: false
default: ""
jobs:
EndToEndTests:
runs-on: ubuntu-latest
env:
HAVA_TOKEN: ${{ secrets.HAVA_TOKEN }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_CROSS_ACCOUNT_ROLE: ${{ secrets.AWS_CROSS_ACCOUNT_ROLE }}
HAVA_AWS_SOURCE_NAME: ${{ vars.HAVA_AWS_SOURCE_NAME }}
HAVA_AWSCAR_SOURCE_NAME: ${{ vars.HAVA_AWSCAR_SOURCE_NAME }}
HAVA_AZURE_SOURCE_NAME: ${{ vars.HAVA_AZURE_SOURCE_NAME }}
HAVA_GCP_SOURCE_NAME: ${{ vars.HAVA_GCP_SOURCE_NAME }}
GCP_ENCODED_FILE: ${{ secrets.GCP_ENCODED_FILE }}
ARM_CLIENT_ID: ${{ secrets.ARM_CLIENT_ID }}
ARM_TENANT_ID: ${{ secrets.ARM_TENANT_ID }}
ARM_SUBSCRIPTION_ID: ${{ secrets.ARM_SUBSCRIPTION_ID }}
ARM_SECRET_TEXT: ${{ secrets.ARM_SECRET_TEXT }}
AUTOMATION: 1
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install Go
uses: actions/setup-go@v4
with:
go-version: 1.20.7
- name: Install gox
run: |
go get github.com/mitchellh/gox
go install github.com/mitchellh/gox
- name: Install zip
run: |
sudo apt-get update -q
sudo apt-get install zip jq -q
- name: Cross compile
run: |
gox \
-os="linux" \
-ldflags="-X 'github.com/teamhava/hava-ui-cli/version.Build=${{ github.sha }}' -X 'github.com/teamhava/hava-ui-cli/version.Date=$(date)' -X 'github.com/teamhava/hava-ui-cli/version.BuiltBy=github'" \
-arch="amd64" \
-output "./hava" \
.
- name: Print version
run: ./hava --version
- name: Create Source AWS (Using Access Keys)
run: ./hava source create aws --name $HAVA_AWS_SOURCE_NAME --access-key $AWS_ACCESS_KEY_ID --secret-key $AWS_SECRET_ACCESS_KEY
- name: List ALL sources
run: ./hava source list
- name: Get AWS source ID
id: awsSourceID
run: |
AWS_SOURCE_ID=$(./hava source list --json | jq -r '.[] | select(.Name==env.HAVA_AWS_SOURCE_NAME) | .Id')
echo "AWS_SOURCE_ID=$AWS_SOURCE_ID" >> $GITHUB_ENV
- name: List specific source
run: ./hava source list --source-id $AWS_SOURCE_ID
- name: Create Source AWS (Using Cross Account Roles)
run: ./hava source create aws --name $HAVA_AWSCAR_SOURCE_NAME --role-arn $AWS_CROSS_ACCOUNT_ROLE
- name: Create Source GCP
run: ./hava source create gcp --name $HAVA_GCP_SOURCE_NAME --config-file $GCP_ENCODED_FILE
- name: Create Source Azure
run: ./hava source create azure --name $HAVA_AZURE_SOURCE_NAME --client-id $ARM_CLIENT_ID --tenant-id $ARM_TENANT_ID --subscription-id $ARM_SUBSCRIPTION_ID --secret-key $ARM_SECRET_TEXT
- name: List ALL sources
run: ./hava source list
- name: List ALL sources (Markdown)
run: |
STEP_SUMMARY=$(./hava source list --markdown)
echo "### List ALL sources (Markdown) :rocket:" >> $GITHUB_STEP_SUMMARY
echo "$STEP_SUMMARY" >> $GITHUB_STEP_SUMMARY
echo "$STEP_SUMMARY"
- name: List ALL sources (HTML)
run: |
STEP_SUMMARY=$(./hava source list --html)
echo "### List ALL sources (HTML) :rocket:" >> $GITHUB_STEP_SUMMARY
echo "$STEP_SUMMARY" >> $GITHUB_STEP_SUMMARY
echo "$STEP_SUMMARY"
- name: List ALL sources (JSON OUTPUT)
run: ./hava source list --json | jq
- name: Get GCP source ID
id: gcpSourceID
run: |
GCP_SOURCE_ID=$(./hava source list --json | jq -r '.[] | select(.Name==env.HAVA_GCP_SOURCE_NAME) | .Id')
echo "GCP_SOURCE_ID=$GCP_SOURCE_ID" >> $GITHUB_ENV
- name: Get Azure source ID
id: azureSourceID
run: |
AZURE_SOURCE_ID=$(./hava source list --json | jq -r '.[] | select(.Name==env.HAVA_AZURE_SOURCE_NAME) | .Id')
echo "AZURE_SOURCE_ID=$AZURE_SOURCE_ID" >> $GITHUB_ENV
- name: Get AWS CAR source ID
id: awsCarSourceID
run: |
AWSCAR_SOURCE_ID=$(./hava source list --json | jq -r '.[] | select(.Name==env.HAVA_AWSCAR_SOURCE_NAME) | .Id')
echo "AWSCAR_SOURCE_ID=$AWSCAR_SOURCE_ID" >> $GITHUB_ENV
- name: Update GCP Source
run: ./hava source update gcp --name GCPDevChange --source-id $GCP_SOURCE_ID
- name: Quick Pause to review
run: sleep 30s
- name: Sync AWS Source
run: ./hava source sync $AWS_SOURCE_ID
- name: List ALL sources
run: ./hava source list
- name: Delete AWS Keys Source
run: ./hava source delete $AWS_SOURCE_ID --autoapprove
- name: Delete AWS CAR Source
run: ./hava source delete $AWSCAR_SOURCE_ID --autoapprove
- name: Delete GCP Source
run: ./hava source delete $GCP_SOURCE_ID --autoapprove
- name: Delete AZURE Source
run: ./hava source delete $AZURE_SOURCE_ID --autoapprove
- name: List ALL sources
run: ./hava source list