Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dlovans Redis integration #104

Open
wants to merge 53 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
d5967ae
sh files created to build and test in the workflow
gamzemgb Aug 17, 2024
7707aa9
Merge pull request #8 from gamzemgb/auto
gamzemgb Aug 17, 2024
1449024
Build and test in workflow
gamzemgb Aug 17, 2024
c3ca447
Merge pull request #9 from gamzemgb/gamzemgb-patch-1
gamzemgb Aug 17, 2024
62027d8
Change of symbol
gamzemgb Aug 17, 2024
985ca40
change of symbol
gamzemgb Aug 17, 2024
89d59c0
Change of on action
gamzemgb Aug 17, 2024
1e8eae1
change of symbol
gamzemgb Aug 17, 2024
c3eed3a
Merge pull request #10 from gamzemgb/build
gamzemgb Aug 17, 2024
de80b68
main.go files modified
gamzemgb Aug 17, 2024
fdb55f3
Merge pull request #11 from gamzemgb/build
gamzemgb Aug 17, 2024
3a8e890
test for backend
gamzemgb Aug 17, 2024
b54db84
Merge pull request #12 from gamzemgb/auto
gamzemgb Aug 17, 2024
baed048
Backend test added
gamzemgb Aug 17, 2024
3a82862
Merge pull request #13 from gamzemgb/gamzemgb-patch-1
gamzemgb Aug 17, 2024
47c65aa
change of symbol
gamzemgb Aug 17, 2024
4ea6a29
typo error fixed
gamzemgb Aug 17, 2024
5e055cb
maintaining mainline integrity
gamzemgb Aug 17, 2024
c59c0b9
Merge pull request #14 from gamzemgb/gamzemgb-patch-2
gamzemgb Aug 17, 2024
37e010b
manifests for backend
gamzemgb Aug 17, 2024
7a1b454
Merge pull request #15 from gamzemgb/manifests
gamzemgb Aug 17, 2024
da27db6
backend service
gamzemgb Aug 17, 2024
572dcf9
Merge pull request #16 from gamzemgb/manifests
gamzemgb Aug 17, 2024
94592c5
frontend manifests
gamzemgb Aug 17, 2024
4104fd5
Merge pull request #17 from gamzemgb/manifests
gamzemgb Aug 17, 2024
93416eb
change of symbol
gamzemgb Aug 17, 2024
15b7ae4
Merge pull request #18 from gamzemgb/manifests
gamzemgb Aug 17, 2024
b979fd3
pushing to github container registry
gamzemgb Aug 17, 2024
6018970
Merge pull request #19 from gamzemgb/gamzemgb-patch-1
gamzemgb Aug 17, 2024
454df95
building docker
gamzemgb Aug 17, 2024
043847c
Merge pull request #20 from gamzemgb/manifests
gamzemgb Aug 17, 2024
ab732f8
pushing to github container registry
gamzemgb Aug 17, 2024
7bfd346
typo error fixed
gamzemgb Aug 17, 2024
ebfe7ae
docker build changed
gamzemgb Aug 17, 2024
fa22374
Merge pull request #21 from gamzemgb/manifests
gamzemgb Aug 17, 2024
86ceb62
deployment
gamzemgb Aug 17, 2024
ae2063d
pushing to github container registry
gamzemgb Aug 17, 2024
0b4be53
Deployment added
gamzemgb Aug 17, 2024
190e808
dockerfiles and composef file created
gamzemgb Aug 17, 2024
48fa170
Merge pull request #22 from gamzemgb/manifests
gamzemgb Aug 17, 2024
e441c62
dockerfile creation attempt
gamzemgb Aug 17, 2024
e194698
another approach to pushing to github and deploying
gamzemgb Aug 17, 2024
a2cb2c2
changed some things to build and deploy
gamzemgb Aug 17, 2024
906c0c0
backend build deleted
gamzemgb Aug 17, 2024
42b3550
docker login step added
gamzemgb Aug 17, 2024
6bd28c5
setup kubernates deployment. Closes #5
Dlov507 Aug 19, 2024
be0c67a
change of branch making the workflow trigger on any branch in the rep…
gamzemgb Aug 19, 2024
1f78f04
Merge pull request #24 from gamzemgb/gamzemgb-patch-2
gamzemgb Aug 19, 2024
8431848
Merge pull request #25 from gamzemgb/ci-setup
gamzemgb Aug 19, 2024
96a0529
deploy "needs" changed
gamzemgb Aug 19, 2024
37bd411
Merge pull request #26 from gamzemgb/gamzemgb-patch-3
gamzemgb Aug 19, 2024
5018909
Dlovan Added Redis deployment and integrated it with backend. Closes #7
Dlov507 Aug 19, 2024
823c48f
Merge branch 'main' into redis-integration
gamzemgb Aug 19, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
108 changes: 108 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
name: CI Pipeline

on:
pull_request:
branches:
- "**"
push:
branches:
- main
env:
docker_username: ${{ github.actor }}
docker_password: ${{ secrets.GITHUB_TOKEN }}
GIT_COMMIT: ${{ github.sha }}
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3

- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: 1.16

- name: Build the frontend application
run: bash CI/build-frontend.sh

- name: Run frontend test
run: bash CI/test-frontend.sh

- name: Run backend test
run: bash CI/test-backend.sh

- name: Upload repo
uses: actions/upload-artifact@v4
with:
name: code
path: .
Linting:
runs-on: ubuntu-latest
needs: [build]
steps:
- name: Download code
uses: actions/download-artifact@v4
with:
name: code
path: .
- name: run linting
uses: super-linter/super-linter/slim@v5
env:
DEFAULT_BRANCH: main
# To report GitHub Actions status checks
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
DISABLE_ERRORS: true
Docker-image:
runs-on: ubuntu-latest
needs: [build]
permissions:
packages: write
steps:
- name: Download code
uses: actions/download-artifact@v4
with:
name: code
path: .
- name: ls
run: ls -la CI
- name: Log in to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push frontend Docker image
uses: docker/build-push-action@v4
with:
context: ./frontend
push: true
tags: ghcr.io/${{ github.repository_owner }}/frontend:${{ github.sha }}

- name: Build and push backend Docker image
uses: docker/build-push-action@v4
with:
context: ./backend
push: true
tags: ghcr.io/${{ github.repository_owner }}/backend:${{ github.sha }}
deploy:
runs-on: ubuntu-latest
needs: [Docker-image]
steps:
- name: Checkout code
uses: actions/checkout@v3

- name: Create kubeconfig
run: echo "${{ secrets.KUBECONFIG }}" | base64 -d > kubeconfig

- name: Deploy Redis to Kubernetes
run: |
kubectl --kubeconfig kubeconfig apply -f k8s/redis/

- name: Deploy Backend with Redis Configuration
run: |
kubectl --kubeconfig kubeconfig apply -f k8s/backend/

- name: Deploy Frontend
run: |
kubectl --kubeconfig kubeconfig apply -f k8s/frontend/
5 changes: 5 additions & 0 deletions CI/build-docker.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/bin/bash
[[ -z "${GIT_COMMIT}" ]] && Tag='local' || Tag="${GIT_COMMIT::8}"
REPO="ghcr.io/$docker_username/"
echo "${REPO}"
docker build -t "${REPO}micronaut-app:latest" -t "${REPO}micronaut-app:1.0-$Tag" simple-fortune-cookie/
2 changes: 2 additions & 0 deletions CI/build-frontend.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
cd frontend
go build
2 changes: 2 additions & 0 deletions CI/test-backend.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
cd backend
go test
2 changes: 2 additions & 0 deletions CI/test-frontend.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
cd frontend
go test
14 changes: 14 additions & 0 deletions backend/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
FROM golang:1.16-alpine

WORKDIR /app

COPY go.mod go.sum ./
RUN go mod download

COPY . .

RUN go build -o backend-app

EXPOSE 8080

CMD ["./backend-app"]
27 changes: 27 additions & 0 deletions backend/backend-deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
run: backend-deployment
name: backend-deployment
spec:
replicas: 1
selector:
matchLabels:
run: backend-deployment
template:
metadata:
labels:
run: backend-deployment
spec:
containers:
- name: backend-deployment
image: ghcr.io/eficode-academy/simple-fortune-cookie/backend:latest
ports:
- containerPort: 9000
env:
- name: REDIS_HOST
value: "redis"
- name: REDIS_PORT
value: "6379"

15 changes: 15 additions & 0 deletions backend/backend-service.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
apiVersion: v1
kind: Service
metadata:
name: backend-service
labels:
app: backend-deployment
spec:
type: NodePort
selector:
app: backend-deployment
ports:
- port: 5000
targetPort: 5000
protocol: TCP

2 changes: 1 addition & 1 deletion backend/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -178,5 +178,5 @@ func main() {
mux.Handle("/fortunes/", fortuneH)

err := http.ListenAndServe(":9000", mux)
fmt.Println("%v", err)
fmt.Printf("%v", err)
}
14 changes: 14 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
version: '3.8'

services:
frontend:
build: ./frontend
ports:
- "9000:9000"
depends_on:
- backend

backend:
build: ./backend
ports:
- "8080:8080"
14 changes: 14 additions & 0 deletions frontend/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
FROM golang:1.16-alpine

WORKDIR /app

COPY go.mod ./
RUN go mod download

COPY . .

RUN go build -o frontend-app

EXPOSE 9000

CMD ["./frontend-app"]
22 changes: 22 additions & 0 deletions frontend/frontend-deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
run: frontend-deployment
name: frontend-deployment
spec:
replicas: 1
selector:
matchLabels:
run: frontend-deployment
template:
metadata:
labels:
run: frontend-deployment
spec:
containers:
- name: frontend-deployment
image: ghcr.io/eficode-academy/simple-fortune-cookie/frontend:latest
ports:
- containerPort: 8080

15 changes: 15 additions & 0 deletions frontend/frontend-service.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
apiVersion: v1
kind: Service
metadata:
name: frontend-service
labels:
app: frontend-deployment
spec:
type: NodePort
selector:
app: frontend-deployment
ports:
- port: 5000
targetPort: 5000
protocol: TCP

2 changes: 1 addition & 1 deletion frontend/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -101,5 +101,5 @@ func main() {

http.Handle("/", http.FileServer(http.Dir("./static")))
err := http.ListenAndServe(":8080", nil)
fmt.Println("%v", err)
fmt.Printf("%v", err)
}
31 changes: 31 additions & 0 deletions redis/redis-deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: redis
spec:
selector:
matchLabels:
app: redis
replicas: 1
template:
metadata:
labels:
app: redis
spec:
containers:
- name: redis
image: redis:alpine
ports:
- containerPort: 6379
---
apiVersion: v1
kind: Service
metadata:
name: redis
spec:
selector:
app: redis
ports:
- protocol: TCP
port: 6379
targetPort: 6379