Skip to content

Commit ca33c9b

Browse files
authored
Merge pull request #356 from azure-javaee/edburns/support_integration_test_workflow
Implement more comprehesive automated testing framework
2 parents 61dcd4e + b6d76e0 commit ca33c9b

File tree

47 files changed

+3394
-875
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+3394
-875
lines changed
Lines changed: 143 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,143 @@
1+
name: Get Database parameters
2+
description: Get Database parameters
3+
4+
inputs:
5+
databaseType:
6+
description: "databaseType"
7+
required: true
8+
uamiId:
9+
description: "uamiId"
10+
required: true
11+
serverHost:
12+
description: "serverHost"
13+
required: true
14+
dbInstanceName:
15+
description: "dbInstanceName"
16+
required: true
17+
dbAdminUser:
18+
description: "dbAdminUser"
19+
required: false
20+
default: "testuser"
21+
databaseName:
22+
description: "databaseName"
23+
required: true
24+
default: "testdb"
25+
26+
outputs:
27+
enableDB:
28+
description: "enableDB"
29+
value: ${{ steps.database-parameters.outputs.enableDB }}
30+
enablePswlessConnection:
31+
description: "enablePswlessConnection"
32+
value: ${{ steps.database-parameters.outputs.enablePswlessConnection }}
33+
databaseType:
34+
description: "databaseType"
35+
value: ${{ steps.database-parameters.outputs.databaseType }}
36+
dsConnectionURL:
37+
description: "dsConnectionURL"
38+
value: ${{ steps.database-parameters.outputs.dsConnectionURL }}
39+
dbUser:
40+
description: "dbUser"
41+
value: ${{ steps.database-parameters.outputs.dbUser }}
42+
dbIdentity:
43+
description: "dbIdentity"
44+
value: ${{ steps.database-parameters.outputs.dbIdentity }}
45+
46+
runs:
47+
using: "composite"
48+
steps:
49+
- name: Set up environment variables
50+
shell: bash
51+
id: database-parameters
52+
run: |
53+
enableDB=false
54+
databaseType=sqlserver
55+
dsConnectionURL=jdbc:postgresql://contoso.postgres.database:5432/${{ inputs.databaseName }}
56+
dbUser=contosoDbUser
57+
enablePswlessConnection=false
58+
dbIdentity={}
59+
serverHost=${{ inputs.serverHost }}
60+
uamiId=${{ inputs.uamiId }}
61+
echo "databaseType: ${{ inputs.databaseType }}"
62+
echo "serverHost : $serverHost"
63+
if ${{ inputs.databaseType == 'mssqlserver' }}; then
64+
echo "Using mssqlserver database type"
65+
enableDB=true
66+
databaseType=sqlserver
67+
dsConnectionURL="jdbc:sqlserver://$serverHost:1433;database=${{ inputs.databaseName }}"
68+
dbUser=${{ inputs.dbAdminUser }}@${{ inputs.dbInstanceName }}
69+
elif ${{ inputs.databaseType == 'mssqlserver-passwordless' }}; then
70+
echo "Using mssqlserver-passwordless database type"
71+
enableDB=true
72+
enablePswlessConnection=true
73+
databaseType=sqlserver
74+
dsConnectionURL="jdbc:sqlserver://$serverHost:1433;database=${{ inputs.databaseName }}"
75+
dbUser=${{ inputs.dbAdminUser }}@${{ inputs.dbInstanceName }}
76+
dbIdentity=$(jq -n \
77+
--arg uamiId "$uamiId" \
78+
'{
79+
"type": "UserAssigned",
80+
"userAssignedIdentities": {
81+
($uamiId): {}
82+
}
83+
}'| jq -c '.')
84+
elif ${{ inputs.databaseType == 'oracle' }}; then
85+
echo "Using oracle database type"
86+
enableDB=true
87+
databaseType=oracle
88+
dsConnectionURL=jdbc:oracle:thin:@${serverHost}:1521/oratest1
89+
dbUser=${{ inputs.dbAdminUser }}
90+
elif ${{ inputs.databaseType == 'mysql(flexible)' }}; then
91+
echo "Using mysql(flexible) database type"
92+
enableDB=true
93+
databaseType=mysql
94+
dsConnectionURL=jdbc:mysql://$serverHost:3306/${{ inputs.databaseName }}?sslMode=REQUIRED
95+
dbUser=${{ inputs.dbAdminUser }}
96+
elif ${{ inputs.databaseType == 'mysql-passwordless(flexible)' }}; then
97+
echo "Using mysql-passwordless(flexible) database type"
98+
enableDB=true
99+
enablePswlessConnection=true
100+
dbUser=$(basename "$uamiId")
101+
dbIdentity=$(jq -n \
102+
--arg uamiId "$uamiId" \
103+
'{
104+
"type": "UserAssigned",
105+
"userAssignedIdentities": {
106+
($uamiId): {}
107+
}
108+
}'| jq -c '.' )
109+
databaseType=mysql
110+
dsConnectionURL=jdbc:mysql://$serverHost:3306/${{ inputs.databaseName }}
111+
elif ${{ inputs.databaseType == 'postgresql(flexible)' }}; then
112+
echo "Using postgresql(flexible) database type"
113+
enableDB=true
114+
databaseType=postgresql
115+
dsConnectionURL="jdbc:postgresql://$serverHost:5432/${{ inputs.databaseName }}"
116+
dbUser=${{ inputs.dbAdminUser }}
117+
elif ${{ inputs.databaseType == 'postgresql-passwordless(flexible)' }}; then
118+
echo "Using postgresql-passwordless(flexible) database type"
119+
enableDB=true
120+
enablePswlessConnection=true
121+
dbUser=$(basename "$uamiId")
122+
dbIdentity=$(jq -n \
123+
--arg uamiId "$uamiId" \
124+
'{
125+
"type": "UserAssigned",
126+
"userAssignedIdentities": {
127+
($uamiId): {}
128+
}
129+
}'| jq -c '.')
130+
databaseType=postgresql
131+
dsConnectionURL="jdbc:postgresql://$serverHost:5432/${{ inputs.databaseName }}"
132+
fi
133+
134+
echo "enableDB=$enableDB" >> "$GITHUB_OUTPUT"
135+
echo "enablePswlessConnection=$enablePswlessConnection" >> "$GITHUB_OUTPUT"
136+
echo "databaseType=$databaseType" >> "$GITHUB_OUTPUT"
137+
echo "dsConnectionURL=$dsConnectionURL" >> "$GITHUB_OUTPUT"
138+
echo "dbUser=$dbUser" >> "$GITHUB_OUTPUT"
139+
echo "dbIdentity=$dbIdentity" >> "$GITHUB_OUTPUT"
140+
echo "dsConnectionURL=$dsConnectionURL"
141+
echo "dbUser=$dbUser"
142+
echo "Database parameters set successfully"
143+

0 commit comments

Comments
 (0)