Skip to content

Merge pull request #77 from ClassConnect-org/dev #50

Merge pull request #77 from ClassConnect-org/dev

Merge pull request #77 from ClassConnect-org/dev #50

Workflow file for this run

name: Deploy Microservice
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v3
- name: Set Image Tag
run: echo "IMAGE_TAG=$(date +%Y%m%d-%H%M%S)-$(git rev-parse --short HEAD)" >> $GITHUB_ENV
- name: Login to GitHub Container Registry
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u $GITHUB_ACTOR --password-stdin
- name: Build & Push Docker Image
run: |
docker build -t ghcr.io/classconnect-org/users-microservice:${{ env.IMAGE_TAG }} .
docker push ghcr.io/classconnect-org/users-microservice:${{ env.IMAGE_TAG }}
- name: Set Kubeconfig as Environment Variable
run: |
mkdir -p $HOME/.kube
printf "%s" "${{ secrets.KUBE_CONFIG }}" | base64 --decode > $HOME/.kube/config
export KUBECONFIG=$HOME/.kube/config
chmod 600 $HOME/.kube/config
echo "KUBECONFIG set."
- name: Create Kubernetes Secret for GHCR
run: |
kubectl create secret docker-registry ghcr-secret \
--docker-server=ghcr.io \
--docker-username=maxogod \
--docker-password=${{ secrets.PAT }} \
--docker-email=maxi18wars@gmail.com \
--dry-run=client -o yaml | kubectl apply -f -
- name: Deploy with Helm
run: |
helm upgrade --install users-microservice ./helm-chart \
--set image.repository=ghcr.io/classconnect-org/users-microservice \
--set image.tag=${{ env.IMAGE_TAG }} \
--set deployment.revision=$(date +%s) \
--set env.DB_URL=${{ secrets.DB_URL }} \
--set env.JWT_SECRET=${{ secrets.JWT_SECRET }} \
--set env.SUPABASE_KEY=${{ secrets.SUPABASE_KEY }}