Installation & Deployment Guide
Prerequisites
| Requirement | Details |
|---|---|
| Java | JDK 17 |
| Maven | 3.8+ with access to Azure DevOps Artifacts feed |
| Docker | For containerized deployment |
| Database | SAP HANA or MySQL instance |
| Identity Provider | SAP XSUAA or Keycloak instance |
| Config Server | Spring Cloud Config Server |
| Azure DevOps | Access to InctureProducts/_packaging/Workbox/maven/v1 feed |
| Container Registry | Access to wblnd.azurecr.io (Azure Container Registry) |
Build Steps
# Step 1: Clone the repository
git clone <repo-url> WB-WorkNet
cd WB-WorkNet
# Step 2: Configure Maven settings.xml for Azure DevOps Artifacts
# Add server credentials for the Incture Workbox feed
# File: ~/.m2/settings.xml
# <server>
# <id>Workbox</id>
# <username>InctureProducts</username>
# <password>{Azure DevOps PAT}</password>
# </server>
# Step 3: Build the application
mvn clean package -DskipTests
# Step 4: Verify JAR is created
ls target/worknet-0.0.1-SNAPSHOT.jar
Docker Build & Push
# Build Docker image
docker build -t wblnd.azurecr.io/worknet:<tag> .
# Login to Azure Container Registry
docker login wblnd.azurecr.io -u wblnd -p <password>
# Push image
docker push wblnd.azurecr.io/worknet:<tag>
Deploy to SAP BTP Cloud Foundry
# Login to Cloud Foundry
cf login -a https://api.cf.eu10-004.hana.ondemand.com -o <org> -s <space>
# Set Docker registry password
export CF_DOCKER_PASSWORD=<acr_password>
# Deploy using manifest
cf push -f manifest.yml --docker-password $CF_DOCKER_PASSWORD
# Verify deployment
cf apps
cf logs <app-name> --recent
Deploy to Kubernetes (AKS)
# Step 1: Create image pull secret (one-time)
kubectl create secret docker-registry acr-secret \
--docker-server=wblnd.azurecr.io \
--docker-username=wblnd \
--docker-password=<password>
# Step 2: Apply deployment + service
kubectl apply -f kubernetes/app.yaml
# Step 3: Verify
kubectl get pods -l app=worknet
kubectl logs -l app=worknet --tail=100
CI/CD Pipeline (Azure DevOps)
The standard pipeline (azure-pipelines.yml) performs:
- Replace tokens - Injects environment-specific values into manifest/yaml files
- Maven build - Compiles with JDK 17, authenticates to Azure Artifacts feed
- Docker build & push - Builds image and pushes to ACR
- Publish artifacts - Publishes environment-specific deployment manifests