#
#  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: Build

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'"

  pretty:
    runs-on: ubuntu-20.04
    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 clang-format-9 clang-tidy-9 shellcheck
        python3 -m pip install yapf==0.31.0
        sudo snap install shfmt
    - name: Check
      run: |
        script/make-pretty check

  markdown-lint-check:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - uses: gaurav-nelson/github-action-markdown-link-check@v1
      with:
        use-verbose-mode: 'yes'
        max-depth: 3

  cmake-version:
    runs-on: ubuntu-18.04
    steps:
    - uses: actions/checkout@v2
      with:
        submodules: true
    - name: Bootstrap
      run: |
        sudo pip3 install --system -U cmake==3.10.3
        cmake --version | grep 3.10.3
        sudo apt-get --no-install-recommends install -y ninja-build libreadline-dev libncurses-dev
    - name: Build
      run: |
        OT_NODE_TYPE=rcp ./script/test build

  package:
    name: package-${{ matrix.compiler }}
    runs-on: ubuntu-20.04
    strategy:
      fail-fast: false
      matrix:
        include:
          - compiler: gcc
            compiler_c: gcc
            compiler_cpp: g++
          - compiler: clang
            compiler_c: clang
            compiler_cpp: clang++
    env:
      CC: ${{ matrix.compiler_c }}
      CXX: ${{ matrix.compiler_cpp }}
    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 ninja-build libreadline-dev libncurses-dev
    - name: Package
      run: |
        script/test package

  scan-build:
    runs-on: ubuntu-20.04
    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 clang-tools-9 ninja-build
    - name: Run
      run: |
        script/check-scan-build

  mbedtls3-build:
    runs-on: ubuntu-18.04
    steps:
    - uses: actions/checkout@v2
      with:
        submodules: true
    - name: Bootstrap
      run: |
        sudo apt-get --no-install-recommends install -y ninja-build libreadline-dev libncurses-dev
        rm -rf third_party/mbedtls/repo
    - uses: actions/checkout@v2
      with:
        repository: ARMmbed/mbedtls
        ref: v3.1.0
        path: third_party/mbedtls/repo
    - name: Build
      run: |
        ./script/test build

  arm-gcc:
    name: arm-gcc-${{ matrix.gcc_ver }}
    runs-on: ubuntu-18.04
    strategy:
      fail-fast: false
      matrix:
        include:
          - gcc_ver: 4
            gcc_download_url: https://launchpad.net/gcc-arm-embedded/4.9/4.9-2015-q3-update/+download/gcc-arm-none-eabi-4_9-2015q3-20150921-linux.tar.bz2
            gcc_extract_dir: gcc-arm-none-eabi-4_9-2015q3
          - gcc_ver: 5
            gcc_download_url: https://developer.arm.com/-/media/Files/downloads/gnu-rm/5_4-2016q3/gcc-arm-none-eabi-5_4-2016q3-20160926-linux.tar.bz2
            gcc_extract_dir: gcc-arm-none-eabi-5_4-2016q3
          - gcc_ver: 6
            gcc_download_url: https://developer.arm.com/-/media/Files/downloads/gnu-rm/6-2017q2/gcc-arm-none-eabi-6-2017-q2-update-linux.tar.bz2
            gcc_extract_dir: gcc-arm-none-eabi-6-2017-q2-update
          - gcc_ver: 7
            gcc_download_url: https://developer.arm.com/-/media/Files/downloads/gnu-rm/7-2018q2/gcc-arm-none-eabi-7-2018-q2-update-linux.tar.bz2
            gcc_extract_dir: gcc-arm-none-eabi-7-2018-q2-update
          - gcc_ver: 9
            gcc_download_url: https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2019q4/RC2.1/gcc-arm-none-eabi-9-2019-q4-major-x86_64-linux.tar.bz2
            gcc_extract_dir: gcc-arm-none-eabi-9-2019-q4-major
    steps:
    - uses: actions/checkout@v2
      with:
        submodules: true
    - name: Bootstrap
      run: |
        cd /tmp
        sudo rm /etc/apt/sources.list.d/* && sudo apt-get update
        sudo apt-get --no-install-recommends install -y lib32z1 ninja-build gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf
        wget --tries 4 --no-check-certificate --quiet ${{ matrix.gcc_download_url }} -O gcc-arm.tar.bz2
        tar xjf gcc-arm.tar.bz2
        # use the minimal required cmake version
        sudo pip3 install --system -U cmake==3.10.3
        cmake --version | grep 3.10.3
    - name: Build
      run: |
        export PATH=/tmp/${{ matrix.gcc_extract_dir }}/bin:$PATH
        script/check-arm-build

  gcc:
    name: gcc-${{ matrix.gcc_ver }}
    runs-on: ubuntu-18.04
    strategy:
      fail-fast: false
      matrix:
        gcc_ver: [5, 6, 7, 8, 9, 10, 11]
    env:
      CC: gcc-${{ matrix.gcc_ver }}
      CXX: g++-${{ matrix.gcc_ver }}
    steps:
    - uses: actions/checkout@v2
      with:
        submodules: true
    - name: Bootstrap
      run: |
        sudo rm /etc/apt/sources.list.d/* && sudo apt-get update
        case ${{ matrix.gcc_ver }} in
          11)
            sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
            ;;
        esac
        sudo apt-get --no-install-recommends install -y gcc-${{ matrix.gcc_ver }} g++-${{ matrix.gcc_ver }} ninja-build libreadline-dev libncurses-dev
    - name: Build
      run: |
        script/check-simulation-build
        script/check-posix-build

  clang:
    name: clang-${{ matrix.clang_ver }}
    runs-on: ubuntu-20.04
    strategy:
      fail-fast: false
      matrix:
        clang_ver: ["6.0", "7", "8", "9"]
    env:
      CC: clang-${{ matrix.clang_ver }}
      CXX: clang++-${{ matrix.clang_ver }}
    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 clang-${{ matrix.clang_ver }} clang++-${{ matrix.clang_ver }} ninja-build libreadline-dev libncurses-dev
      - name: Build
        run: |
          script/check-simulation-build
          script/check-posix-build

  clang-m32:
    name: clang-m32-${{ matrix.clang_ver }}
    runs-on: ubuntu-20.04
    strategy:
      fail-fast: false
      matrix:
        clang_ver: ["6.0", "7", "8", "9"]
    env:
      CC: clang-${{ matrix.clang_ver }}
      CXX: clang++-${{ matrix.clang_ver }}
      CFLAGS: -m32 -Wconversion
      CXXFLAGS: -m32 -Wconversion
      LDFLAGS: -m32
    steps:
      - uses: actions/checkout@v2
        with:
          submodules: true
      - name: Bootstrap
        run: |
          sudo dpkg --add-architecture i386
          sudo apt-get update
          sudo apt-get --no-install-recommends install -y clang-${{ matrix.clang_ver }} clang++-${{ matrix.clang_ver }} ninja-build
          sudo apt-get --no-install-recommends install -y g++-multilib libreadline-dev:i386 libncurses-dev:i386
      - name: Build
        run: |
          script/check-simulation-build
          script/check-posix-build

  gn:
    runs-on: ubuntu-20.04
    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 ninja-build
        cd /tmp
        wget -O gn.zip https://chrome-infra-packages.appspot.com/dl/gn/gn/linux-amd64/+/latest
        unzip -o gn.zip
        chmod a+x gn && mkdir -p bin && mv -f gn bin/
    - name: Build
      run: |
        export PATH=/tmp/bin:$PATH
        script/check-gn-build

  macos:
    name: macos-${{ matrix.CC }}
    strategy:
      fail-fast: false
      matrix:
        include:
          - CC: clang
            CXX: clang++
          - CC: gcc
            CXX: g++
    runs-on: macos-10.15
    env:
      CC: ${{ matrix.CC }}
      CXX: ${{ matrix.CXX }}
    steps:
    - uses: actions/checkout@v2
      with:
        submodules: true
    - name: Bootstrap
      run: |
        rm -f '/usr/local/bin/2to3'
        brew update
        brew install automake m4 ninja
        [ ${{ matrix.CC }} != clang ] || brew install llvm
    - name: Build
      run: |
        export PATH=$(brew --prefix m4)/bin:$PATH
        script/check-posix-build
        script/check-simulation-build

  android:
    runs-on: ubuntu-20.04
    steps:
    - uses: actions/checkout@v2
      with:
        submodules: true
    - name: Build
      run: |
        docker run --rm -v $PWD:/build/openthread openthread/android-trusty /build/openthread/script/check-android-build
