From 758674397abc2588ecb63a199ce20f5f1278c694 Mon Sep 17 00:00:00 2001
From: Harshit Aggarwal <haaggarw@microsoft.com>
Date: Tue, 22 Dec 2020 12:40:05 +0530
Subject: [PATCH] adding dev pipeline

---
 devops/azure/chart/helm-config.yaml           | 28 +++++++
 devops/azure/development-pipeline.yml         | 84 +++++++++++++++++++
 .../notification-azure/maven/settings.xml     | 32 +++++++
 provider/notification-azure/pom.xml           |  2 +-
 4 files changed, 145 insertions(+), 1 deletion(-)
 create mode 100644 devops/azure/chart/helm-config.yaml
 create mode 100644 devops/azure/development-pipeline.yml
 create mode 100644 provider/notification-azure/maven/settings.xml

diff --git a/devops/azure/chart/helm-config.yaml b/devops/azure/chart/helm-config.yaml
new file mode 100644
index 000000000..9323d6f1a
--- /dev/null
+++ b/devops/azure/chart/helm-config.yaml
@@ -0,0 +1,28 @@
+#  Copyright © Microsoft Corporation
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+
+# This file contains the essential configs for the osdu on azure helm chart
+global:
+
+  # Service(s) Replica Count
+  replicaCount: 1
+
+################################################################################
+# Specify the Gitlab branch being used for image creation
+# ie: community.opengroup.org:5555/osdu/platform/system/storage/{{ .Values.global.branch }}/storage:latest
+#
+image:
+  repository: #{container-registry}#.azurecr.io
+  branch: #{ENVIRONMENT_NAME}#
+  tag: #{Build.SourceVersion}#
diff --git a/devops/azure/development-pipeline.yml b/devops/azure/development-pipeline.yml
new file mode 100644
index 000000000..532aa11e8
--- /dev/null
+++ b/devops/azure/development-pipeline.yml
@@ -0,0 +1,84 @@
+#  Copyright © Microsoft Corporation
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+
+trigger:
+   batch: true
+   branches:
+     include:
+       - master
+   paths:
+     exclude:
+       - /**/*.md
+       - .gitignore
+       - /docs
+       - /provider/notification-aws
+       - /provider/notification-gcp
+       - /provider/notification-ibm
+
+resources:
+  repositories:
+    - repository: FluxRepo
+      type: git
+      name: k8-gitops-manifests
+    - repository: TemplateRepo
+      type: git
+      name: infra-azure-provisioning
+
+variables:
+  - group: 'Azure - OSDU'
+  - group: 'Azure - OSDU Secrets'
+
+  - name: serviceName
+    value: "notification"
+  - name: chartPath
+    value: "devops/azure/chart"
+  - name: valuesFile
+    value: "devops/azure/chart/helm-config.yaml"
+  - name: 'MANIFEST_REPO'
+    value: $[ resources.repositories['FluxRepo'].name ]
+  - name: 'MAVEN_CACHE_FOLDER'
+    value: $(Pipeline.Workspace)/.m2/repository
+  - name: SKIP_TESTS
+    value: 'false'
+
+stages:
+  - template: /devops/build-stage.yml@TemplateRepo
+    parameters:
+      mavenGoal: 'package'
+      mavenPublishJUnitResults: true
+      serviceCoreMavenOptions: '-P notification-core --settings .mvn/community-maven.settings.xml'
+      mavenOptions: '-P notification-azure --settings .mvn/community-maven.settings.xml -Dmaven.repo.local=$(MAVEN_CACHE_FOLDER)'
+      copyFileContents: |
+        pom.xml
+        provider/notification-azure/maven/settings.xml
+        provider/notification-azure/pom.xml
+        provider/notification-azure/target/*-spring-boot.jar
+        .mvn/community-maven.settings.xml
+      copyFileContentsToFlatten: ''
+      mavenSettingsFile: '.mvn/community-maven.settings.xml'
+      serviceBase: ${{ variables.serviceName }}
+      testingRootFolder: 'testing'
+      chartPath: ${{ variables.chartPath }}
+  - template: /devops/deploy-stages.yml@TemplateRepo
+    parameters:
+      serviceName: ${{ variables.serviceName }}
+      chartPath: ${{ variables.chartPath }}
+      valuesFile: ${{ variables.valuesFile }}
+      testCoreMavenPomFile: 'testing/notification-test-core/pom.xml'
+      testCoreMavenOptions: '--settings $(System.DefaultWorkingDirectory)/drop/.mvn/community-maven.settings.xml'
+      skipDeploy: ${{ variables.SKIP_DEPLOY }}
+      skipTest: ${{ variables.SKIP_TESTS }}
+      providers:
+        -  name: Azure
+           environments: ['dev']
diff --git a/provider/notification-azure/maven/settings.xml b/provider/notification-azure/maven/settings.xml
new file mode 100644
index 000000000..020363544
--- /dev/null
+++ b/provider/notification-azure/maven/settings.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Copyright © Microsoft Corporation
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+  -->
+
+<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
+          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
+    <servers>
+        <server>
+            <id>azure-auth</id>
+            <configuration>
+                <tenant>${AZURE_DEPLOY_TENANT}</tenant>
+                <client>${AZURE_DEPLOY_CLIENT_ID}</client>
+                <key>${AZURE_DEPLOY_CLIENT_SECRET}</key>
+                <environment>AZURE</environment>
+            </configuration>
+        </server>
+    </servers>
+</settings>
diff --git a/provider/notification-azure/pom.xml b/provider/notification-azure/pom.xml
index bf1bbd055..c6b6f1657 100644
--- a/provider/notification-azure/pom.xml
+++ b/provider/notification-azure/pom.xml
@@ -20,7 +20,7 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <artifactId>notification-azure</artifactId>
-    <version>1.0.0</version>
+    <version>1.0.0-SNAPSHOT</version>
     <name>notification-azure</name>
     <description>Azure implementation for Notification service</description>
     <packaging>jar</packaging>
-- 
GitLab