Skip to content
This repository has been archived by the owner on Jul 8, 2024. It is now read-only.

Commit

Permalink
Merge pull request #17 from floriaaan/dev
Browse files Browse the repository at this point in the history
feat: complete back-end
  • Loading branch information
floriaaan authored Feb 9, 2024
2 parents 840a026 + e06dbe9 commit 397aa95
Show file tree
Hide file tree
Showing 1,039 changed files with 156,108 additions and 23 deletions.
51 changes: 51 additions & 0 deletions .github/workflows/delivery-deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
name: Deploy Delivery Microservice CI/CD

on:
push:
branches: [ dev, main ]

permissions:
id-token: write
contents: read

jobs:
deploy:
runs-on: ubuntu-latest
environment: dev
needs: [ build, test, publish ]
steps:
- name: Checkout code
uses: actions/checkout@master
- name: Install kubectl
run: |
sudo snap install kubectl --classic
- name: 'Az CLI login'
uses: azure/login@v1
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
- name: Set up Terraform
uses: hashicorp/setup-terraform@v1
with:
terraform_version: 1.0.5
- name: Terraform init
run: |
cd ./terraform &&
terraform init
- name: Terraform apply
run: |
cd ./terraform &&
terraform apply -auto-approve
- name: Terraform apply delivery
run: |
cd ../services/delivery/terraform &&
terraform apply -auto-approve
- name: Configure kubectl
run: |
az aks get-credentials --resource-group rg-goodfood-dev --name aks-goodfood-dev
- name: apply k8s manifests
run: |
cd .. &&
kubectl create namespace goodfood &&
kubectlcrete kubectl apply -f ./k8s
82 changes: 82 additions & 0 deletions .github/workflows/delivery.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
name: Delivery Microservice CI/CD

on:
push:
branches: [delivery]
pull_request:
branches: [main]

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: pnpm/action-setup@v2
with:
version: latest
- uses: actions/setup-node@v3
with:
node-version: "18.x"
cache: "pnpm"
cache-dependency-path: services/delivery/pnpm-lock.yaml
- name: Install dependencies
run: |
cd ./services/delivery
pnpm install --frozen-lockfile
- name: Build
run: |
cd ./services/delivery
pnpm build
test:
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@master
- uses: pnpm/action-setup@v2
with:
version: latest
- uses: actions/setup-node@v3
with:
node-version: "18.x"
cache: "pnpm"
cache-dependency-path: services/delivery/pnpm-lock.yaml
- name: Install dependencies
run: |
cd ./services/delivery
pnpm install --frozen-lockfile
- name: Execute tests
run: |
cd ./services/delivery
pnpm test
sonarcloud:
name: SonarCloud
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
- name: SonarCloud Scan
uses: SonarSource/sonarcloud-github-action@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}

publish:
runs-on: ubuntu-latest
needs: [build, test]
steps:
- name: Checkout code
uses: actions/checkout@master
- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v4
with:
context: ./services/
file: ./services/delivery/Dockerfile
push: true
tags: floriaaan/goodfood-delivery:latest
87 changes: 87 additions & 0 deletions .github/workflows/gateway.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
name: Gateway CI/CD

on:
push:
branches: [gateway]
pull_request:
branches: [main]

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: pnpm/action-setup@v2
with:
version: latest
- uses: actions/setup-node@v3
with:
node-version: "18.x"
cache: "pnpm"
cache-dependency-path: services/gateway/pnpm-lock.yaml
- name: Install dependencies
run: |
cd ./services/gateway
pnpm install --frozen-lockfile
- name: Build protos
run: |
cd ./services/gateway
pnpm build:proto
- name: Build
run: |
cd ./services/gateway
pnpm build
# test:
# runs-on: ubuntu-latest
# needs: build
# steps:
# - uses: actions/checkout@master
# - uses: pnpm/action-setup@v2
# with:
# version: latest
# - uses: actions/setup-node@v3
# with:
# node-version: "18.x"
# cache: "pnpm"
# cache-dependency-path: services/gateway/pnpm-lock.yaml
# - name: Install dependencies
# run: |
# cd ./services/gateway
# pnpm install --frozen-lockfile
# - name: Execute tests
# run: |
# cd ./services/gateway
# pnpm test

sonarcloud:
name: SonarCloud
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
- name: SonarCloud Scan
uses: SonarSource/sonarcloud-github-action@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}

publish:
runs-on: ubuntu-latest
needs: [build]
steps:
- name: Checkout code
uses: actions/checkout@master
- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v4
with:
context: ./services/
file: ./services/gateway/Dockerfile
push: true
tags: floriaaan/goodfood-gateway:latest
15 changes: 10 additions & 5 deletions .github/workflows/tests.yml → .github/workflows/global.yml
Original file line number Diff line number Diff line change
@@ -1,13 +1,18 @@
# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions

name: "Tests"
name: "Tests all microservices"

on:
- push
- pull_request
- workflow_dispatch

push:
branches:
- main
- dev
pull_request:
branches:
- main
- dev
workflow_dispatch:

jobs:
tests:
Expand Down
65 changes: 65 additions & 0 deletions .github/workflows/log.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
name: Log Microservice CI/CD

on:
push:
branches: [log]
pull_request:
branches: [dev, main]

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Install Go
uses: actions/setup-go@v4
with:
go-version: 1.20.3

- name: Build
run: cd services/log && go build .

test:
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@master
- name: Install Go
uses: actions/setup-go@v4
with:
go-version: 1.20.3

- name: Execute tests
run: cd services/log && go test -v .

sonarcloud:
name: SonarCloud
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
- name: SonarCloud Scan
uses: SonarSource/sonarcloud-github-action@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}

publish:
runs-on: ubuntu-latest
needs: [build, test]
steps:
- name: Checkout code
uses: actions/checkout@master
- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v4
with:
context: ./services/
file: ./services/log/Dockerfile
push: true
tags: floriaaan/goodfood-log:latest
82 changes: 82 additions & 0 deletions .github/workflows/notifications.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
name: Notification Microservice CI/CD

on:
push:
branches: [ notification ]
pull_request:
branches: [ dev, main ]

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: pnpm/action-setup@v2
with:
version: latest
- uses: actions/setup-node@v3
with:
node-version: "18.x"
cache: "pnpm"
cache-dependency-path: services/notification/pnpm-lock.yaml
- name: Install dependencies
run: |
cd ./services/notification
pnpm install --frozen-lockfile
- name: Build
run: |
cd ./services/notification
pnpm build
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: pnpm/action-setup@v2
with:
version: latest
- uses: actions/setup-node@v3
with:
node-version: "18.x"
cache: "pnpm"
cache-dependency-path: services/notification/pnpm-lock.yaml
- name: Install dependencies
run: |
cd ./services/notification
pnpm install --frozen-lockfile
- name: Execute tests
run: |
cd ./services/notification
pnpm test
sonarcloud:
name: SonarCloud
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
- name: SonarCloud Scan
uses: SonarSource/sonarcloud-github-action@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}

publish:
runs-on: ubuntu-latest
needs: [ build, test ]
steps:
- name: Checkout code
uses: actions/checkout@master
- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v4
with:
context: ./services/
file: ./services/notification/Dockerfile
push: true
tags: floriaaan/goodfood-notification:latest
Loading

0 comments on commit 397aa95

Please sign in to comment.