# Starter pipeline
# Start with a minimal pipeline that you can customize to build and deploy your code.
# Add steps that build, run tests, deploy, and more:
# https://aka.ms/yaml

trigger:
  - master

pr: none

parameters:
  - name: XAPIEMAIL
    type: string
    displayName: X-API-EMAIL
    default: user@email.com
  - name: XAPIKEY
    type: string
    displayName: X-API-KEY
    default: user-api-key
  - name: BUILDINGID
    type: string
    default: "1"
  - name: MAPVIEWERDOMAIN
    type: string
    default: "https://maps.situm.com"
  - name: PROFILE
    type: string
    default: "demo"

variables:
  - group: Passwords
  - group: SoftwareVersions
  - group: SharepointPaths

resources:
  repositories:
  - repository: sys_kubernetes_templates
    type: bitbucket
    endpoint: Bitbucket - sistemas
    name: situm/sys-kubernetes-templates.git

jobs:
  #===============================================================
  # Job for Android app
  #===============================================================
  - job:
    displayName: Build Android App
    pool:
      vmImage: $(ubuntuVersion)
    steps:
    - ${{ if ne(variables['Build.Reason'],'manual') }}:
      - bash: |
           echo "##vso[task.setvariable variable=XAPIKEY]$(echo $(XAPIKEY_EXAMPLES))"
           echo "##vso[task.setvariable variable=XAPIEMAIL]$(echo $(XAPIEMAIL_EXAMPLES))"
           echo "##vso[task.setvariable variable=BUILDINGID]$(echo $(BUILDING_ID_EXAMPLES))"
           echo "##vso[task.setvariable variable=MAPVIEWERDOMAIN]$(echo $(DEFAULT_MAPVIEWURL))"
           echo "##vso[task.setvariable variable=PROFILE]$(echo $(DEFAULT_REMOTEIDENTIFIER))"
           echo "##vso[task.setvariable variable=BUILDNUMBER]$(echo $(Build.BuildNumber) | awk -F"." '{if ($2 < 10) print $1"0"$2; else print $1$2}')"

           echo -e "\n[!] I'm a shy step so I don't show any information. You'll see my work in the Configure Credentials step"
        displayName: Configure Automatic run Vars

    - ${{ if eq(variables['Build.Reason'],'manual') }}:
      - bash: |
           echo "##vso[task.setvariable variable=XAPIKEY]$(echo ${{parameters.XAPIKEY}})"
           echo "##vso[task.setvariable variable=XAPIEMAIL]$(echo ${{ parameters.XAPIEMAIL}})"
           echo "##vso[task.setvariable variable=BUILDINGID]$(echo ${{ parameters.BUILDINGID}})"
           echo "##vso[task.setvariable variable=MAPVIEWERDOMAIN]$(echo ${{ parameters.MAPVIEWERDOMAIN }})"
           echo "##vso[task.setvariable variable=PROFILE]$(echo ${{ parameters.PROFILE }})"
           echo "##vso[task.setvariable variable=BUILDNUMBER]$(echo $(Build.BuildNumber) | awk -F"." '{if ($2 < 10) print $1"0"$2; else print $1$2}')"

           echo -e "\n[!] I'm a shy step so I don't show any information. You'll see my work in the Configure Credentials step"
        displayName: Configure Manual run Vars

    - template: azure/common-steps.yaml
      parameters:
        XAPIKEY: $(XAPIKEY)
        XAPIEMAIL: $(XAPIEMAIL)
        BUILDINGID: $(BUILDINGID)
        MAPVIEWERDOMAIN: $(MAPVIEWERDOMAIN)
        PROFILE: $(PROFILE)
        system: $(ubuntuVersion)
        BUILDNUMBER: $(BUILDNUMBER)

    - template: azure/build-examples.yaml
      parameters:
        system: $(ubuntuVersion)
        BUILDINGID: $(BUILDINGID)
        XAPIEMAIL: $(XAPIEMAIL)
        MAPVIEWERDOMAIN: $(MAPVIEWERDOMAIN)
        BUILDNUMBER: $(BUILDNUMBER)

    - ${{ if ne(variables['Build.Reason'],'manual') }}:
      - template: azure-templates/teams-notifier.yml@sys_kubernetes_templates
        parameters:
          channelId: $(releasesMobileChannelId)
          teamID: $(releasesMobileTeamId)
          messageType: "error"
          message: "Hey Team, 🚨 our <strong>Capacitor Android Example App auto build</strong> just took a dive off the high board and belly-flopped! 🚨 Let's put on our lifeguard hats and dive in for a rescue mission! 🚑 Time to debug and bring that pipeline back to smooth sailing! 🛠️⚓ Alert level: High! Let's fix it! 🚨"


  #===============================================================
  # Job for iOS app
  #===============================================================
  - job:
    displayName: Build iOS App
    pool:
      vmImage: $(macOSVersion)
    steps:
    - ${{ if ne(variables['Build.Reason'],'manual') }}:
      - bash: |
           echo "##vso[task.setvariable variable=XAPIKEY]$(echo $(XAPIKEY_EXAMPLES))"
           echo "##vso[task.setvariable variable=XAPIEMAIL]$(echo $(XAPIEMAIL_EXAMPLES))"
           echo "##vso[task.setvariable variable=BUILDINGID]$(echo $(BUILDING_ID_EXAMPLES))"
           echo "##vso[task.setvariable variable=MAPVIEWERDOMAIN]$(DEFAULT_MAPVIEWURL)"
           echo "##vso[task.setvariable variable=PROFILE]$(echo $(DEFAULT_REMOTEIDENTIFIER))"
           echo "##vso[task.setvariable variable=BUILDNUMBER]$(echo $(Build.BuildNumber) | awk -F"." '{if ($2 < 10) print $1"0"$2; else print $1$2}')"

           echo -e "\n[!] I'm a shy step so I don't show any information. You'll see my work in the Configure Credentials step"
        displayName: Configure Automatic run Vars

    - ${{ if eq(variables['Build.Reason'],'manual') }}:
      - bash: |
           echo "##vso[task.setvariable variable=XAPIKEY]$(echo ${{parameters.XAPIKEY}})"
           echo "##vso[task.setvariable variable=XAPIEMAIL]$(echo ${{ parameters.XAPIEMAIL}})"
           echo "##vso[task.setvariable variable=BUILDINGID]$(echo ${{ parameters.BUILDINGID}})"
           echo "##vso[task.setvariable variable=MAPVIEWERDOMAIN]$(echo ${{ parameters.MAPVIEWERDOMAIN }})"
           echo "##vso[task.setvariable variable=PROFILE]$(echo ${{ parameters.PROFILE }})"
           echo "##vso[task.setvariable variable=BUILDNUMBER]$(echo $(Build.BuildNumber) | awk -F"." '{if ($2 < 10) print $1"0"$2; else print $1$2}')"

           echo -e "\n[!] I'm a shy step so I don't show any information. You'll see my work in the Configure Credentials step"
        displayName: Configure Manual run Vars

    - bash: |
         echo -e "\n[+] Install gnu-sed\n"
         brew install gnu-sed
      displayName: Install gnu-sed

    - template: azure/common-steps.yaml
      parameters:
        XAPIKEY: $(XAPIKEY)
        XAPIEMAIL: $(XAPIEMAIL)
        BUILDINGID: $(BUILDINGID)
        system: $(macOSVersion)
        BUILDNUMBER: $(BUILDNUMBER)
        MAPVIEWERDOMAIN: $(MAPVIEWERDOMAIN)
        PROFILE: $(PROFILE)

    - template: azure/build-examples.yaml
      parameters:
        MAPVIEWERDOMAIN: $(MAPVIEWERDOMAIN)
        system: $(macOSVersion)
        XAPIEMAIL: $(XAPIEMAIL)
        BUILDINGID: $(BUILDINGID)
        BUILDNUMBER: $(BUILDNUMBER)

    - ${{ if ne(variables['Build.Reason'],'manual') }}:
      - template: azure-templates/teams-notifier.yml@sys_kubernetes_templates
        parameters:
          channelId: $(releasesMobileChannelId)
          teamID: $(releasesMobileTeamId)
          messageType: "error"
          message: "Hey Team, 🚨 our <strong>Capacitor iOS Example App auto build</strong> just took a dive off the high board and belly-flopped! 🚨 Let's put on our lifeguard hats and dive in for a rescue mission! 🚑 Time to debug and bring that pipeline back to smooth sailing! 🛠️⚓ Alert level: High! Let's fix it! 🚨"
