#
#  Copyright (c) 2020, 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: POSIX

on: [push, pull_request]

jobs:

  cancel-previous-runs:
    runs-on: ubuntu-20.04
    steps:
    - uses: rokroskar/workflow-run-cleanup-action@master
      env:
        GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
      if: "github.ref != 'refs/heads/main'"

  expects-linux:
    runs-on: ubuntu-18.04
    env:
      CFLAGS: -DCLI_COAP_SECURE_USE_COAP_DEFAULT_HANDLER=1 -DOPENTHREAD_CONFIG_MLE_MAX_CHILDREN=15
      CXXFLAGS: -DCLI_COAP_SECURE_USE_COAP_DEFAULT_HANDLER=1 -DOPENTHREAD_CONFIG_MLE_MAX_CHILDREN=15
    steps:
    - uses: actions/checkout@v2
    - name: Bootstrap
      run: |
        sudo apt-get --no-install-recommends install -y expect ninja-build lcov socat
    - name: Run RCP Mode
      run: |
        ulimit -c unlimited
        ./script/test prepare_coredump_upload
        OT_OPTIONS='-DOT_READLINE=OFF -DOT_FULL_LOGS=ON -DOT_LOG_OUTPUT=PLATFORM_DEFINED' VIRTUAL_TIME=0 OT_NODE_TYPE=rcp ./script/test build expect
    - name: Check Crash
      if: ${{ failure() }}
      run: |
          CRASHED=$(./script/test check_crash | tail -1)
          [[ $CRASHED -eq "1" ]] && echo "Crashed!" || echo "Not crashed."
          echo "CRASHED_RCP=$CRASHED" >> $GITHUB_ENV
    - uses: actions/upload-artifact@v2
      if: ${{ failure() && env.CRASHED_RCP == '1' }}
      with:
        name: core-expect-rcp
        path: |
          ./ot-core-dump/*
    - name: Generate Coverage
      run: |
        ./script/test generate_coverage gcc
    - uses: actions/upload-artifact@v2
      with:
        name: cov-expects-linux-1
        path: tmp/coverage.info
    - name: Run TUN Mode
      run: |
        sudo rm /etc/apt/sources.list.d/* && sudo apt-get update
        sudo apt-get install --no-install-recommends -y dnsmasq bind9-host ntp
        sudo systemctl start dnsmasq ntp
        host ipv6.google.com 127.0.0.1
        echo 'listen-address=::1' | sudo tee /etc/dnsmasq.conf
        echo 0 | sudo tee /proc/sys/net/ipv6/conf/all/disable_ipv6
        sudo systemctl restart dnsmasq
        host ipv6.google.com ::1
        ulimit -c unlimited
        ./script/test prepare_coredump_upload
        OT_OPTIONS='-DOT_READLINE=OFF -DOT_FULL_LOGS=ON -DOT_LOG_OUTPUT=PLATFORM_DEFINED' OT_NATIVE_IP=1 VIRTUAL_TIME=0 OT_NODE_TYPE=rcp ./script/test clean build expect
    - name: Check Crash
      if: ${{ failure() }}
      run: |
          CRASHED=$(./script/test check_crash | tail -1)
          [[ $CRASHED -eq "1" ]] && echo "Crashed!" || echo "Not crashed."
          echo "CRASHED_TUN=$CRASHED" >> $GITHUB_ENV
    - uses: actions/upload-artifact@v2
      if: ${{ failure() && env.CRASHED_TUN == '1' }}
      with:
        name: core-expect-linux
        path: |
          ./ot-core-dump/*
    - uses: actions/upload-artifact@v2
      if: ${{ failure() }}
      with:
        name: syslog-expect-linux
        path: /var/log/syslog
    - name: Generate Coverage
      run: |
        ./script/test generate_coverage gcc
    - uses: actions/upload-artifact@v2
      with:
        name: cov-expects-linux-2
        path: tmp/coverage.info

  thread-cert:
    runs-on: ubuntu-20.04
    env:
      COVERAGE: 1
      PYTHONUNBUFFERED: 1
      READLINE: readline
      REFERENCE_DEVICE: 1
      THREAD_VERSION: 1.1
      VIRTUAL_TIME: 1
      VIRTUAL_TIME_UART: 1
    steps:
    - uses: actions/checkout@v2
      with:
        submodules: true
    - name: Bootstrap
      run: |
        sudo rm /etc/apt/sources.list.d/* && sudo apt-get update
        sudo apt-get --no-install-recommends install -y libreadline6-dev python3-setuptools python3-wheel lcov
        python3 -m pip install -r tests/scripts/thread-cert/requirements.txt
    - name: Build
      run: |
        ./bootstrap
        make -f examples/Makefile-simulation
        make -f src/posix/Makefile-posix
    - name: Run
      run: |
        VERBOSE=1 OT_CLI_PATH="$PWD/output/posix/bin/ot-cli -v" RADIO_DEVICE="$PWD/output/simulation/bin/ot-rcp" make -f src/posix/Makefile-posix check
    - uses: actions/upload-artifact@v2
      if: ${{ failure() }}
      with:
        name: thread-cert
        path: build/posix/tests/scripts/thread-cert
    - name: Generate Coverage
      run: |
        ./script/test generate_coverage gcc
    - uses: actions/upload-artifact@v2
      with:
        name: cov-thread-cert
        path: tmp/coverage.info

  ncp-rcp-migrate:
    runs-on: ubuntu-20.04
    env:
      COVERAGE: 1
    steps:
    - uses: actions/checkout@v2
      with:
        submodules: true
    - name: Bootstrap
      run: |
        sudo rm /etc/apt/sources.list.d/* && sudo apt-get update
        sudo apt-get --no-install-recommends install -y expect lcov
    - name: Build
      run: |
        ./bootstrap
        script/check-ncp-rcp-migrate build
    - name: Run
      run: |
        script/check-ncp-rcp-migrate check
    - name: Generate Coverage
      run: |
        ./script/test generate_coverage gcc
    - uses: actions/upload-artifact@v2
      with:
        name: cov-ncp-rcp-migrate
        path: tmp/coverage.info

  pty-linux:
    name: pty-linux OT_DAEMON=${{ matrix.OT_DAEMON }}
    runs-on: ubuntu-20.04
    strategy:
      matrix:
        OT_DAEMON: ['off', 'on']
    env:
      COVERAGE: 1
      OT_DAEMON: ${{ matrix.OT_DAEMON }}
      OT_READLINE: 'readline'
    steps:
    - uses: actions/checkout@v2
    - name: Bootstrap
      run: |
        sudo rm /etc/apt/sources.list.d/* && sudo apt-get update
        sudo apt-get --no-install-recommends install -y socat expect lcov net-tools ninja-build
        cd /tmp
        wget https://github.com/obgm/libcoap/archive/bsd-licensed.tar.gz
        tar xvf bsd-licensed.tar.gz
        cd libcoap-bsd-licensed
        ./autogen.sh
        ./configure --prefix= --exec-prefix=/usr --with-boost=internal --disable-tests --disable-documentation
        make -j2
        sudo make install
    - name: Build
      run: |
        script/check-posix-pty build
    - name: Run
      run: |
        script/check-posix-pty check
    - name: Run (OT_DAEMON_ALLOW_ALL)
      if: matrix.OT_DAEMON == 'on'
      env:
        OT_DAEMON_ALLOW_ALL: 1
      run: |
        script/check-posix-pty check
    - name: Generate Coverage
      run: |
        ./script/test generate_coverage gcc
    - uses: actions/upload-artifact@v2
      with:
        name: cov-pty-linux-${{ matrix.DAEMON }}
        path: tmp/coverage.info

  pty-macos:
    name: pty-macos OT_DAEMON=${{ matrix.OT_DAEMON }}
    runs-on: macos-10.15
    strategy:
      matrix:
        OT_DAEMON: ['off', 'on']
    env:
      OT_DAEMON: ${{ matrix.OT_DAEMON }}
      OT_READLINE: 'off'
    steps:
    - uses: actions/checkout@v2
    - name: Bootstrap
      run: |
        rm -f '/usr/local/bin/2to3'
        brew update
        brew install ninja socat
    - name: Build
      run: |
        script/check-posix-pty build
    - name: Run
      run: |
        script/check-posix-pty check

  rcp-stack-reset:
    runs-on: ubuntu-20.04
    steps:
    - uses: actions/checkout@v2
    - name: Bootstrap
      env:
        GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
      run: |
        sudo apt-get --no-install-recommends install -y expect ninja-build lcov socat
        sudo python3 -m pip install git+https://github.com/openthread/pyspinel
    - name: Build
      run: |
        script/cmake-build simulation -DOT_CSL_RECEIVER=ON -DOT_FULL_LOGS=ON -DOT_LOG_OUTPUT=PLATFORM_DEFINED
    - name: Run
      run: |
        python3 tests/scripts/misc/test_rcp_reset.py build/simulation/examples/apps/ncp/ot-rcp
    - name: Generate Coverage
      run: |
        ./script/test generate_coverage gcc
    - uses: actions/upload-artifact@v2
      with:
        name: cov-rcp-stack-reset
        path: tmp/coverage.info

  upload-coverage:
    needs:
    - expects-linux
    - ncp-rcp-migrate
    - pty-linux
    - thread-cert
    runs-on: ubuntu-20.04
    steps:
    - uses: actions/checkout@v2
      with:
        submodules: true
    - name: Bootstrap
      run: |
        sudo apt-get --no-install-recommends install -y lcov
    - uses: actions/download-artifact@v2
      with:
        path: coverage/
    - name: Combine Coverage
      run: |
        script/test combine_coverage
    - name: Upload Coverage
      uses: codecov/codecov-action@v1
      with:
        files: final.info
        fail_ci_if_error: true

  delete-coverage-artifacts:
    needs: upload-coverage
    if: always()
    runs-on: ubuntu-20.04
    steps:
    - uses: geekyeggo/delete-artifact@1-glob-support
      with:
        name: cov-*
        useGlob: true
