Skip to content

Commit fa61d9a

Browse files
Feature/web client and IaC (#302)
* Added IaC and WebClient pattern * Adding RESTClient, Removing accessToken * Updating Actions * Fixing TestCases * Removing spring-web * Improving Test coverage * Improving Test coverage * Improving Test coverage * Improving Code Quality
1 parent 98ca089 commit fa61d9a

34 files changed

+1393
-332
lines changed

.github/workflows/build.from.main.branch.deploy.to.dev.yml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ env:
1010
COMMON_NAMESPACE: ${{ vars.COMMON_NAMESPACE }}
1111
GRAD_NAMESPACE: ${{ vars.GRAD_NAMESPACE }}
1212
BUSINESS_NAMESPACE: ${{ vars.GRAD_BUSINESS_NAMESPACE }}
13+
KEYCLOAK_URL: ${{ secrets.KEYCLOAK_URL }}
14+
KEYCLOAK_REALM: ${{ secrets.KEYCLOAK_REALM }}
15+
TARGET_ENV: dev
1316

1417
# 🖊️ EDIT to change the image registry settings.
1518
# Registries such as GHCR, Quay.io, and Docker Hub are supported.
@@ -81,6 +84,20 @@ jobs:
8184
username: ${{ env.IMAGE_REGISTRY_USER }}
8285
password: ${{ env.IMAGE_REGISTRY_PASSWORD }}
8386

87+
- name: Setup Node.js
88+
uses: actions/setup-node@v3
89+
with:
90+
node-version: '20'
91+
92+
- name: Install dependencies
93+
run: npm install axios
94+
95+
- name: Create/Update clients
96+
run: node ./tools/config/clients-and-scopes.js
97+
98+
- name: Create/Update secrets
99+
run: node ./tools/openshift/fetch-and-create-secrets.js
100+
84101
# The path the image was pushed to is now stored in ${{ steps.push-image.outputs.registry-path }}
85102
- name: Install oc
86103
uses: redhat-actions/openshift-tools-installer@v1

.github/workflows/build.from.release.branch.deploy.to.dev.yml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ env:
1010
COMMON_NAMESPACE: ${{ vars.COMMON_NAMESPACE }}
1111
GRAD_NAMESPACE: ${{ vars.GRAD_NAMESPACE }}
1212
BUSINESS_NAMESPACE: ${{ vars.GRAD_BUSINESS_NAMESPACE }}
13+
KEYCLOAK_URL: ${{ secrets.KEYCLOAK_URL }}
14+
KEYCLOAK_REALM: ${{ secrets.KEYCLOAK_REALM }}
15+
TARGET_ENV: dev
1316

1417
# 🖊️ EDIT to change the image registry settings.
1518
# Registries such as GHCR, Quay.io, and Docker Hub are supported.
@@ -89,6 +92,20 @@ jobs:
8992
username: ${{ env.IMAGE_REGISTRY_USER }}
9093
password: ${{ env.IMAGE_REGISTRY_PASSWORD }}
9194

95+
- name: Setup Node.js
96+
uses: actions/setup-node@v3
97+
with:
98+
node-version: '20'
99+
100+
- name: Install dependencies
101+
run: npm install axios
102+
103+
- name: Create/Update clients
104+
run: node ./tools/config/clients-and-scopes.js
105+
106+
- name: Create/Update secrets
107+
run: node ./tools/openshift/fetch-and-create-secrets.js
108+
92109
# The path the image was pushed to is now stored in ${{ steps.push-image.outputs.registry-path }}
93110
- name: Install oc
94111
uses: redhat-actions/openshift-tools-installer@v1
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
name: IaC for Clients and Secrets
2+
run-name: IaC for Clients and Secrets in ${{ github.event.inputs.environment }}
3+
4+
permissions:
5+
contents: read
6+
7+
env:
8+
KEYCLOAK_URL: ${{ secrets.KEYCLOAK_URL }}
9+
KEYCLOAK_REALM: ${{ secrets.KEYCLOAK_REALM }}
10+
OPENSHIFT_SERVER: ${{ vars.OPENSHIFT_SERVER }}
11+
GRAD_NAMESPACE: ${{ vars.GRAD_NAMESPACE }}-${{ github.event.inputs.environment }}
12+
OPENSHIFT_NAMESPACE: ${{ vars.GRAD_NAMESPACE }}-${{ github.event.inputs.environment }}
13+
OPENSHIFT_TOKEN: ${{ secrets.OPENSHIFT_TOKEN }}
14+
TARGET_ENV: ${{ github.event.inputs.environment }}
15+
16+
on:
17+
workflow_dispatch:
18+
inputs:
19+
environment:
20+
type: environment
21+
22+
jobs:
23+
create-or-update-clients:
24+
runs-on: ubuntu-latest
25+
environment: ${{ github.event.inputs.environment }}
26+
27+
steps:
28+
- name: Checkout repo
29+
uses: actions/checkout@v4
30+
31+
- name: Setup Node.js
32+
uses: actions/setup-node@v3
33+
with:
34+
node-version: '20'
35+
36+
- name: Install dependencies
37+
run: npm install axios
38+
39+
- name: Create/Update clients
40+
run: node ./tools/config/clients-and-scopes.js
41+
42+
- name: Create/Update secrets
43+
run: node ./tools/openshift/fetch-and-create-secrets.js
44+

.github/workflows/deploy_latest_test.yml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ env:
99
OPENSHIFT_NAMESPACE: ${{ vars.GRAD_NAMESPACE }}-test
1010
COMMON_NAMESPACE: ${{ vars.COMMON_NAMESPACE }}
1111
BUSINESS_NAMESPACE: ${{ vars.GRAD_BUSINESS_NAMESPACE }}
12+
KEYCLOAK_URL: ${{ secrets.KEYCLOAK_URL }}
13+
KEYCLOAK_REALM: ${{ secrets.KEYCLOAK_REALM }}
14+
TARGET_ENV: test
1215

1316
SPRING_BOOT_IMAGE_NAME: educ-grad-assessment-api
1417

@@ -38,6 +41,20 @@ jobs:
3841
- name: Check out repository
3942
uses: actions/checkout@v4
4043

44+
- name: Setup Node.js
45+
uses: actions/setup-node@v3
46+
with:
47+
node-version: '20'
48+
49+
- name: Install dependencies
50+
run: npm install axios
51+
52+
- name: Create/Update clients
53+
run: node ./tools/config/clients-and-scopes.js
54+
55+
- name: Create/Update secrets
56+
run: node ./tools/openshift/fetch-and-create-secrets.js
57+
4158
- name: Install oc
4259
uses: redhat-actions/openshift-tools-installer@v1
4360
with:

.github/workflows/deploy_prod.yml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ env:
99
OPENSHIFT_NAMESPACE: ${{ vars.GRAD_NAMESPACE }}-prod
1010
COMMON_NAMESPACE: ${{ vars.COMMON_NAMESPACE }}
1111
BUSINESS_NAMESPACE: ${{ vars.GRAD_BUSINESS_NAMESPACE }}
12+
KEYCLOAK_URL: ${{ secrets.KEYCLOAK_URL }}
13+
KEYCLOAK_REALM: ${{ secrets.KEYCLOAK_REALM }}
14+
TARGET_ENV: prod
1215

1316
SPRING_BOOT_IMAGE_NAME: educ-grad-assessment-api
1417

@@ -42,6 +45,20 @@ jobs:
4245
uses: actions-ecosystem/action-get-latest-tag@v1
4346
id: get-latest-tag
4447

48+
- name: Setup Node.js
49+
uses: actions/setup-node@v3
50+
with:
51+
node-version: '20'
52+
53+
- name: Install dependencies
54+
run: npm install axios
55+
56+
- name: Create/Update clients
57+
run: node ./tools/config/clients-and-scopes.js
58+
59+
- name: Create/Update secrets
60+
run: node ./tools/openshift/fetch-and-create-secrets.js
61+
4562
- name: Install oc
4663
uses: redhat-actions/openshift-tools-installer@v1
4764
with:

.github/workflows/deploy_test.yml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ env:
99
OPENSHIFT_NAMESPACE: ${{ vars.GRAD_NAMESPACE }}-test
1010
COMMON_NAMESPACE: ${{ vars.COMMON_NAMESPACE }}
1111
BUSINESS_NAMESPACE: ${{ vars.GRAD_BUSINESS_NAMESPACE }}
12+
KEYCLOAK_URL: ${{ secrets.KEYCLOAK_URL }}
13+
KEYCLOAK_REALM: ${{ secrets.KEYCLOAK_REALM }}
14+
TARGET_ENV: test
1215

1316
SPRING_BOOT_IMAGE_NAME: educ-grad-assessment-api
1417

@@ -42,6 +45,20 @@ jobs:
4245
uses: actions-ecosystem/action-get-latest-tag@v1
4346
id: get-latest-tag
4447

48+
- name: Setup Node.js
49+
uses: actions/setup-node@v3
50+
with:
51+
node-version: '20'
52+
53+
- name: Install dependencies
54+
run: npm install axios
55+
56+
- name: Create/Update clients
57+
run: node ./tools/config/clients-and-scopes.js
58+
59+
- name: Create/Update secrets
60+
run: node ./tools/openshift/fetch-and-create-secrets.js
61+
4562
- name: Install oc
4663
uses: redhat-actions/openshift-tools-installer@v1
4764
with:

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,4 +55,5 @@ build/
5555
.vscode/
5656

5757
### local dev ###
58-
**/application-local.yaml
58+
**/application-local.yaml
59+
**/generate-local-env.sh

0 commit comments

Comments
 (0)