#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
#

name: Build

on: [push, pull_request]

jobs:
  compile:
    name: "Compile (${{matrix.os}}, ${{matrix.runtimeCheck}})"
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu-20.04]
        buildType: [RelWithDebInfo]
        runtimeCheck: [asan]
    env:
      BuildType: ${{matrix.buildType}}
      ProtonBuildDir: ${{github.workspace}}/qpid-proton/build
      DispatchBuildDir: ${{github.workspace}}/qpid-dispatch/build
      InstallPrefix: ${{github.workspace}}/install

      ProtonCMakeExtraArgs: >
        -DCMAKE_C_COMPILER_LAUNCHER=ccache
        -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
        -DBUILD_BINDINGS=python
        -DBUILD_EXAMPLES=OFF
        -DBUILD_TESTING=OFF
        -DENABLE_FUZZ_TESTING=OFF
        -DRUNTIME_CHECK=${{matrix.runtimeCheck}}
      DispatchCMakeExtraArgs: >
        -DCMAKE_C_COMPILER_LAUNCHER=ccache
        -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
        -DCMAKE_C_FLAGS=-DQD_MEMORY_DEBUG
        -DQD_ENABLE_ASSERTIONS=ON
        -DCONSOLE_INSTALL=OFF
        -DUSE_BWRAP=ON
        -DRUNTIME_CHECK=${{matrix.runtimeCheck}}

      CCACHE_BASEDIR: ${{github.workspace}}
      CCACHE_DIR: ${{github.workspace}}/.ccache
      CCACHE_COMPRESS: 'true'
      CCACHE_MAXSIZE: '400MB'
    steps:

      - name: Show environment (Linux)
        if: ${{ always() && runner.os == 'Linux' }}
        run: env -0 | sort -z | tr '\0' '\n'

      - uses: actions/checkout@v2
        with:
          repository: 'apache/qpid-proton'
          ref: 'master'
          path: 'qpid-proton'

      - uses: actions/checkout@v2
        with:
          path: 'qpid-dispatch'

      # https://cristianadam.eu/20200113/speeding-up-c-plus-plus-github-actions-using-ccache/
      - name: Prepare ccache timestamp
        id: ccache_cache_timestamp
        shell: cmake -P {0}
        run: |
          string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC)
          message("::set-output name=timestamp::${current_date}")

      - uses: actions/cache@v2
        env:
          cache-name: cache-ccache
        with:
          path: .ccache
          key: ${{ matrix.os }}-${{ matrix.runtimeCheck }}-${{ env.cache-name }}-${{ steps.ccache_cache_timestamp.outputs.timestamp }}
          restore-keys: |
            ${{ matrix.os }}-${{ matrix.runtimeCheck }}-${{ env.cache-name }}

      - name: Create Build and Install directories
        run: mkdir -p "${ProtonBuildDir}" "${DispatchBuildDir}" "{InstallPrefix}"

      - name: Setup python
        uses: actions/setup-python@v2
        with:
          python-version: 3.7
          architecture: x64

      - name: Install Python build dependencies
        run: python -m pip install setuptools wheel tox

      - name: Install Linux build dependencies
        if: ${{ runner.os == 'Linux' }}
        run: |
          sudo apt install -y swig libpython3-dev libsasl2-dev libjsoncpp-dev libwebsockets-dev libnghttp2-dev ccache ninja-build pixz

      - name: Zero ccache stats
        run: ccache -z

      - name: qpid-proton cmake configure
        working-directory: ${{env.ProtonBuildDir}}
        run: >
          cmake "${{github.workspace}}/qpid-proton" \
            "-DCMAKE_INSTALL_PREFIX=${InstallPrefix}" \
            "-DCMAKE_BUILD_TYPE=${BuildType}" \
            "-GNinja" \
            ${ProtonCMakeExtraArgs}

      - name: qpid-proton cmake build/install
        run: cmake --build "${ProtonBuildDir}" --config ${BuildType} -t install

      - name: Display ccache stats
        run: ccache -s

      - name: qpid-dispatch cmake configure
        working-directory: ${{env.DispatchBuildDir}}
        run: >
          cmake "${{github.workspace}}/qpid-dispatch" \
            "-DCMAKE_INSTALL_PREFIX=${InstallPrefix}" \
            "-DCMAKE_BUILD_TYPE=${BuildType}" \
            "-GNinja" \
            ${DispatchCMakeExtraArgs}

      - name: qpid-dispatch cmake build/install
        run: cmake --build "${DispatchBuildDir}" --config ${BuildType} -t install

      - name: Display ccache stats
        run: ccache -s

      # github actions/upload-artifact@v2 does not preserve executable permission on binaries
      - name: Compress build
        working-directory: ${{github.workspace}}
        run: >
          tar \
            -I pixz \
            -cf /tmp/archive.tar.xz \
            --exclude '*.o' \
            --exclude '*.pyc' \
            --exclude '.git' \
            --exclude='qpid-dispatch/build/console' \
            qpid-dispatch \
            install \
            qpid-proton/build/python/pkgs

      - name: Upload archive
        uses: actions/upload-artifact@v2
        with:
          name: qpid_dispatch_wrk_${{matrix.os}}_${{matrix.buildType}}_${{matrix.runtimeCheck}}
          path: /tmp/archive.tar.xz

  test:
    name: 'Test (${{matrix.os}}, ${{matrix.runtimeCheck}}, shard ${{matrix.shard}} of ${{matrix.shards}})'
    runs-on: ${{ matrix.os }}
    needs: [compile]
    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu-20.04]
        buildType: [RelWithDebInfo]
        runtimeCheck: [asan]
        shard: [1, 2]
        shards: [2]
    env:
      BuildType: ${{matrix.buildType}}
      ProtonBuildDir: ${{github.workspace}}/qpid-proton/build
      DispatchBuildDir: ${{github.workspace}}/qpid-dispatch/build
      InstallPrefix: ${{github.workspace}}/install
      LD_LIBRARY_PATH: ${{github.workspace}}/install/lib
    steps:

      - name: Show environment (Linux)
        if: ${{ always() && runner.os == 'Linux' }}
        run: env -0 | sort -z | tr '\0' '\n'

      - name: Download Build
        uses: actions/download-artifact@v2
        with:
          name: qpid_dispatch_wrk_${{matrix.os}}_${{matrix.buildType}}_${{matrix.runtimeCheck}}

      - name: Setup python
        uses: actions/setup-python@v2
        with:
          python-version: 3.7
          architecture: x64

      - name: Install Python runtime/test dependencies
        run: python -m pip install tox quart selectors grpcio protobuf

      - name: Install Linux runtime/test dependencies
        if: ${{ runner.os == 'Linux' }}
        run: |
          sudo apt install -y libsasl2-2 libsasl2-modules sasl2-bin libjsoncpp1 libwebsockets15 pixz bubblewrap curl

      - name: Unpack archive
        run: tar -I pixz -xf archive.tar.xz

      - name: install qpid-proton python wheel
        run: python -m pip install ${ProtonBuildDir}/python/pkgs/python_qpid_proton*.whl

      - name: CTest
        working-directory: ${{env.DispatchBuildDir}}
        run: |
          ulimit -c unlimited
          ctest -C ${BuildType} -V -T Test --no-compress-output -I ${{matrix.shard}},,${{matrix.shards}} -j2

      - name: Upload test results
        uses: actions/upload-artifact@v2
        if: ${{ ! cancelled() }}
        with:
          name: Test_Results_${{matrix.os}}_${{matrix.buildType}}_${{matrix.runtimeCheck}}_${{matrix.shard}}
          path: ${{env.DispatchBuildDir}}/Testing/**/*.xml

      - name: Upload core files (if any)
        uses: actions/upload-artifact@v2
        if: failure()
        with:
          name: cores_${{matrix.os}}_${{matrix.buildType}}_${{matrix.runtimeCheck}}_${{matrix.shard}}
          path: |
            **/core

  console-test:
    name: Console Tests
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2

      - name: Install Dependencies
        run: cd console/react && npm ci

      - name: Run Tests
        run: cd console/react && npm run test

  console-eslint:
    name: Console ESLint
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2

      - name: Install Dependencies
        run: cd console/react && npm ci

      - name: Run ESLint
        run: cd console/react && npx eslint --max-warnings 0 .

  rat_check:
    name: RAT Check
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions/cache@v2
        with:
          path: ~/.m2/repository
          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
          restore-keys: |
            ${{ runner.os }}-maven-

      - name: Install JDK ${{ matrix.java }}
        uses: actions/setup-java@v1
        with:
          java-version: 11

      - name: RAT Check
        run: mvn apache-rat:check

      - name: Output
        if: ${{ ! cancelled() }}
        run: cat target/rat.txt || echo "Unable to print output"
