Skip to content

feat(middlewares): caching for authentication #48

feat(middlewares): caching for authentication

feat(middlewares): caching for authentication #48

Workflow file for this run

name: Build, Test and Deploy Users Service
on:
push:
branches: [main]
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Docker
uses: docker/setup-buildx-action@v2
- name: Build The Image
working-directory: services/users/
run: make build
test-on-docker:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Docker
uses: docker/setup-buildx-action@v2
- name: Create Shared Network
run: docker network create shared-service-network
- name: Build The Image
working-directory: services/users/
run: make build
- name: Run The Service
working-directory: services/users/
run: make run DETACHED=true
- name: Run The Tests
working-directory: services/users/
run: make test
test-on-kubernetes:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up kubectl
uses: azure/setup-kubectl@v1
- name: Start minikube
uses: medyagh/setup-minikube@master
- name: Create ConfigMap
run: kubectl create configmap jobhunt-user-env --from-env-file=./services/users/env/pg.env --from-env-file=./services/users/env/jwt.env
- name: Run Kubernetes Deployments
run: kubectl apply -f k8s/
- name: Wait for Database Deployments
run: kubectl wait --for=condition=available --timeout=60s deployment/jobhunt-user-postgres
- name: Wait for Backend Deployments
run: kubectl wait --for=condition=available --timeout=60s deployment/jobhunt-user-backend
- name: Run Backend Tests
run: kubectl exec -it $(kubectl get pods | grep backend | awk '{print $1}') -- python -m pytest tests/
deploy:
needs: [test-on-docker, test-on-kubernetes]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Fake Deployment
run: echo "Deploying the service to the cloud..."