#
#  Copyright (c) 2021, The OpenThread Authors.
#  All rights reserved.
#
#  Redistribution and use in source and binary forms, with or without
#  modification, are permitted provided that the following conditions are met:
#  1. Redistributions of source code must retain the above copyright
#     notice, this list of conditions and the following disclaimer.
#  2. Redistributions in binary form must reproduce the above copyright
#     notice, this list of conditions and the following disclaimer in the
#     documentation and/or other materials provided with the distribution.
#  3. Neither the name of the copyright holder nor the
#     names of its contributors may be used to endorse or promote products
#     derived from this software without specific prior written permission.
#
#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
#  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
#  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
#  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
#  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
#  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
#  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
#  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
#  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
#  POSSIBILITY OF SUCH DAMAGE.
#

name: Border Router

on:
  push:
    branches-ignore:
      - 'dependabot/**'
  pull_request:
    branches:
      - 'main'

concurrency:
  group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.repository == 'openthread/openthread' && github.run_id) || github.ref }}
  cancel-in-progress: true

permissions:
  contents: read

jobs:

  backbone-router:
    runs-on: ubuntu-20.04
    env:
      REFERENCE_DEVICE: 1
      VIRTUAL_TIME: 0
      PACKET_VERIFICATION: 1
      THREAD_VERSION: 1.3
      INTER_OP: 1
      COVERAGE: 1
      MULTIPLY: 1
      PYTHONUNBUFFERED: 1
      VERBOSE: 1
      # The Border Routing and DUA feature can coexist, but current wireshark
      # packet verification can't handle it because of the order of context ID
      # of OMR prefix and Domain prefix is not deterministic.
      BORDER_ROUTING: 0
    steps:
    - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0
      with:
        submodules: true
    - name: Build OTBR Docker
      env:
        GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
      run: |
        ./script/test build_otbr_docker
    - name: Bootstrap
      run: |
        sudo rm /etc/apt/sources.list.d/* && sudo apt-get update
        sudo apt-get --no-install-recommends install -y python3-setuptools python3-wheel ninja-build socat lcov
        python3 -m pip install -r tests/scripts/thread-cert/requirements.txt
    - name: Build
      run: |
        ./script/test build
    - name: Get Thread-Wireshark
      run: |
        ./script/test get_thread_wireshark
    - name: Run
      run: |
        export CI_ENV="$(bash <(curl -s https://codecov.io/env)) -e GITHUB_ACTIONS -e COVERAGE"
        echo "CI_ENV=${CI_ENV}"
        sudo -E ./script/test cert_suite ./tests/scripts/thread-cert/backbone/*.py || (sudo chmod a+r *.log *.json *.pcap && false)
    - uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
      with:
        name: cov-thread-1-3-backbone-docker
        path: /tmp/coverage/
    - uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
      if: ${{ failure() }}
      with:
        name: thread-1-3-backbone-results
        path: |
          *.pcap
          *.json
          *.log
          coredump_*
          otbr-agent_*
    - name: Generate Coverage
      run: |
        ./script/test generate_coverage gcc
    - uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
      with:
        name: cov-thread-1-3-backbone
        path: tmp/coverage.info

  thread-border-router:
    runs-on: ubuntu-20.04
    strategy:
      fail-fast: false
      matrix:
        include:
          - otbr_mdns: "mDNSResponder"
            otbr_trel: 0
            cert_scripts: ./tests/scripts/thread-cert/border_router/*.py
            packet_verification: 1
            nat64: 0
            description: ""
          - otbr_mdns: "mDNSResponder"
            otbr_trel: 1
            cert_scripts: ./tests/scripts/thread-cert/border_router/*.py
            packet_verification: 2
            nat64: 0
            description: ""
          - otbr_mdns: "mDNSResponder"
            otbr_trel: 0
            cert_scripts: ./tests/scripts/thread-cert/border_router/MATN/*.py
            packet_verification: 1
            nat64: 0
            description: "MATN"
          - otbr_mdns: "mDNSResponder"
            otbr_trel: 0
            cert_scripts: ./tests/scripts/thread-cert/border_router/LowPower/*.py
            packet_verification: 1
            nat64: 0
            description: "LowPower"
          - otbr_mdns: "mDNSResponder"
            otbr_trel: 0
            cert_scripts: ./tests/scripts/thread-cert/border_router/nat64/*.py
            packet_verification: 1
            nat64: 1
            description: "nat64 openthread"
          - otbr_mdns: "avahi"
            otbr_trel: 0
            cert_scripts: ./tests/scripts/thread-cert/border_router/*.py
            packet_verification: 1
            nat64: 0
            description: ""
          - otbr_mdns: "avahi"
            otbr_trel: 1
            cert_scripts: ./tests/scripts/thread-cert/border_router/*.py
            packet_verification: 2
            nat64: 0
            description: ""
          - otbr_mdns: "avahi"
            otbr_trel: 0
            cert_scripts: ./tests/scripts/thread-cert/border_router/*.py
            packet_verification: 1
            nat64: 0
            use_core_firewall: 1
            description: "core firewall"
    name: BR ${{ matrix.description }} (${{ matrix.otbr_mdns }}, TREL=${{matrix.otbr_trel}})
    env:
      REFERENCE_DEVICE: 1
      VIRTUAL_TIME: 0
      PACKET_VERIFICATION: ${{ matrix.packet_verification }}
      THREAD_VERSION: 1.3
      INTER_OP: 1
      COVERAGE: 1
      MULTIPLY: 1
      OTBR_MDNS: ${{ matrix.otbr_mdns }}
      PYTHONUNBUFFERED: 1
      VERBOSE: 1
      BORDER_ROUTING: 1
      NAT64: ${{ matrix.nat64 }}
      MAX_JOBS: 3
    steps:
    - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0
    - name: Set firewall environment variables
      if: ${{ matrix.use_core_firewall }}
      run: |
        echo "FIREWALL=0" >> $GITHUB_ENV
    - name: Build OTBR Docker
      env:
        GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
        TREL: ${{ matrix.otbr_trel }}
      run: |
        ./script/test build_otbr_docker
    - name: Bootstrap
      run: |
        sudo rm /etc/apt/sources.list.d/* && sudo apt-get update
        sudo apt-get --no-install-recommends install -y python3-setuptools python3-wheel ninja-build socat lcov
        python3 -m pip install -r tests/scripts/thread-cert/requirements.txt
    - name: Build
      run: |
        ./script/test build
    - name: Get Thread-Wireshark
      run: |
        ./script/test get_thread_wireshark
    - name: Run
      run: |
        export CI_ENV="$(bash <(curl -s https://codecov.io/env)) -e GITHUB_ACTIONS -e COVERAGE"
        echo "CI_ENV=${CI_ENV}"
        sudo -E ./script/test cert_suite ${{ matrix.cert_scripts }} || (sudo chmod a+r *.log *.json *.pcap && false)
    - uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
      with:
        name: cov-thread-border-router-docker
        path: /tmp/coverage/
    - uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
      if: ${{ failure() }}
      with:
        name: thread-border-router-results
        path: |
          *.pcap
          *.json
          *.log
          coredump_*
          otbr-agent_*
    - name: Generate Coverage
      run: |
        ./script/test generate_coverage gcc
    - uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
      with:
        name: cov-thread-border-router
        path: tmp/coverage.info

  upload-coverage:
    needs:
    - backbone-router
    - thread-border-router
    runs-on: ubuntu-20.04
    steps:
    - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0
      with:
        submodules: true
    - name: Bootstrap
      run: |
        sudo apt-get --no-install-recommends install -y lcov
    - uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2
      with:
        path: coverage/
    - name: Combine Coverage
      continue-on-error: true
      run: |
        script/test combine_coverage
    - name: Upload Coverage
      continue-on-error: true
      uses: codecov/codecov-action@eaaf4bedf32dbdc6b720b63067d99c4d77d6047d # v3.1.4
      with:
        files: final.info
        fail_ci_if_error: true

  delete-coverage-artifacts:
    needs: upload-coverage
    runs-on: ubuntu-20.04
    steps:
    - uses: geekyeggo/delete-artifact@54ab544f12cdb7b71613a16a2b5a37a9ade990af # v2.0.0
      with:
        name: cov-*
        useGlob: true
