name: Build Docker image

on:
  push:
    paths-ignore:
      - '**.md'
    branches:
      - main
      - 'release/*'
    tags:
      - 'v*'
  pull_request:
    branches:
      - main
      - 'release/*'

defaults:
  run:
    shell: bash

jobs:
  docker:
    runs-on: ubuntu-20.04
    env:
      DOCKER_REGISTRY_URL: tip-tip-wlan-cloud-ucentral.jfrog.io
      DOCKER_REGISTRY_USERNAME: ucentral
    steps:
    - name: Checkout actions repo
      uses: actions/checkout@v2
      with:
        repository: Telecominfraproject/.github
        path: github

    - name: Build and push Docker image
      uses: ./github/composite-actions/docker-image-build
      with:
        image_name: owgw-ui
        registry: tip-tip-wlan-cloud-ucentral.jfrog.io
        registry_user: ucentral
        registry_password: ${{ secrets.DOCKER_REGISTRY_PASSWORD }}

    - name: Notify on failure via Slack
      if: failure() && github.ref == 'refs/heads/main'
      uses: rtCamp/action-slack-notify@v2
      env:
        SLACK_USERNAME: GitHub Actions failure notifier
        SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
        SLACK_COLOR: "${{ job.status }}"
        SLACK_ICON: https://raw.githubusercontent.com/quintessence/slack-icons/master/images/github-logo-slack-icon.png
        SLACK_TITLE: Docker build failed for OWGW-UI service

  trigger-deploy-to-dev:
    runs-on: ubuntu-latest
    if: github.ref == 'refs/heads/main'
    needs:
      - docker
    steps:
    - name: Checkout actions repo
      uses: actions/checkout@v2
      with:
        repository: Telecominfraproject/.github
        path: github

    - name: Trigger deployment of the latest version to dev instance and wait for result
      uses: ./github/composite-actions/trigger-workflow-and-wait
      with:
        owner: Telecominfraproject
        repo: wlan-testing
        workflow: ucentralgw-dev-deployment.yaml
        token: ${{ secrets.WLAN_TESTING_PAT }}
        ref: master
        inputs: '{"force_latest": "true"}'
