Skip to content

FACT-USER-ZEEBE-CI-CD #2

FACT-USER-ZEEBE-CI-CD

FACT-USER-ZEEBE-CI-CD #2

name: FACT-USER-ZEEBE-CI-CD
on:
push:
branches:
- 'main'
paths:
- './amorphie.user.zeebe.workers'
pull_request:
types:
- closed
branches:
- 'main'
paths:
- './amorphie.user.zeebe.workers'
workflow_dispatch:
env:
APP_NAME: amorphie.fact-user-zeebe
NAMESPACE: amorphie-fact-user-zeebe
CLUSTER_NAME: BurganAKS
CLUSTER_RESOURCE_GROUP: BurganTech
SECRET: docker-hub
jobs:
ci-cd:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Login to Docker Hub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v2
with:
context: .
file: Dockerfile-Zeebe
push: true
tags: ${{ secrets.DOCKER_HUB_USERNAME }}/${{ env.APP_NAME }}:${{ github.sha }}
# Set the target Azure Kubernetes Service (AKS) cluster.
- uses: azure/aks-set-context@v1
with:
creds: ${{ secrets.AZURE_CREDENTIALS }}
cluster-name: ${{ env.CLUSTER_NAME }}
resource-group: ${{ env.CLUSTER_RESOURCE_GROUP }}
# Create namespace if doesn't exist
- run: |
kubectl create namespace ${{ env.NAMESPACE }} --dry-run=client -o json | kubectl apply -f -
# Create image pull secret for Docker
- uses: azure/k8s-create-secret@v1
with:
container-registry-url: docker.io
container-registry-username: ${{ secrets.DOCKER_HUB_USERNAME }}
container-registry-password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
secret-name: ${{ env.SECRET }}
namespace: ${{ env.NAMESPACE }}
arguments: --force true
- name: Replace vault address
run: |
sed -i -e "s,vault-address,${{ secrets.VAULT_ADDRESS }},g" ./manifest-user-zeebe/dapr/vault-component.yaml
- name: Replace vault token
run: |
sed -i -e "s,amorphie-fact-vaulttoken,${{ secrets.VAULT_TOKEN }},g" ./manifest-user-zeebe/dapr/vault-component.yaml
# Deploy app to AKS
- uses: azure/k8s-deploy@v1
with:
manifests: |
${{ github.workspace }}/manifest-user-zeebe/deployment.yaml
${{ github.workspace }}/manifest-user-zeebe/service.yaml
${{ github.workspace }}/manifest-user-zeebe/dapr/cache-redis-component.yaml
${{ github.workspace }}/manifest-user-zeebe/dapr/vault-component.yaml
${{ github.workspace }}/manifest-user-zeebe/dapr/amorphie-zeebe-user-amorphie-sms-control.yaml
${{ github.workspace }}/manifest-user-zeebe/dapr/amorphie-zeebe-user-send-sms-key.yaml
images: |
${{ secrets.DOCKER_HUB_USERNAME }}/${{ env.APP_NAME }}:${{ github.sha }}
imagepullsecrets: |
${{ env.SECRET }}
namespace: ${{ env.NAMESPACE }}