name: Other-architectures

# https://www.jeffgeerling.com/blog/2020/running-github-actions-workflow-on-schedule-and-other-events
# https://github.com/uraimo/run-on-arch-action
on:
  push:
  pull_request:
  schedule:
    - cron: '0 2 * * SUN'

jobs:
  build-other-architectures:
    # The host should always be linux
    runs-on: ubuntu-20.04
    name: Build on ${{ matrix.distro }} ${{ matrix.arch }} ${{ matrix.endianness }}

    # Run steps on a matrix of 3 arch/distro combinations
    strategy:
      fail-fast: false
      matrix:
        include:
          # - arch: armv6
          #   distro: bullseye
          #   target: ARMV6
          # - arch: armv7
          #   distro: ubuntu20.04
          #   target: ARMV7
          - arch: aarch64
            distro: ubuntu20.04 #fedora_latest
            target: ARMV8
            endianness: (Little Endian)
          # - arch: ppc64le
          #   distro: ubuntu20.04
          #   target: POWER8
          - arch: s390x
            distro: ubuntu20.04
            target: Z13
            endianness: (Big Endian)

    steps:
    # https://github.com/marketplace/actions/cancel-workflow-action
    - name: Cancel Previous Runs
      uses: styfle/cancel-workflow-action@0.9.1
      with:
        access_token: ${{ github.token }}

    - name: Checkout repository
      uses: actions/checkout@v3

    - name: Run on arch
      uses: uraimo/run-on-arch-action@v2.1.1
      with:
        githubToken: ${{ github.token }}
        arch: ${{ matrix.arch }}
        distro: ${{ matrix.distro }}

        run: |
          lscpu

          apt-get update && apt-get install -y  lsb-release git build-essential cmake
          lsb_release -a

          apt-get update && apt-get install -y libx11-dev libdc1394-22-dev libv4l-dev gfortran liblapack-dev libopenblas-dev libeigen3-dev libopencv-dev
          apt-get update && apt-get install -y libssl-dev libusb-1.0-0-dev pkg-config libgtk-3-dev libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev

          git clone --depth 1 https://github.com/lagadic/visp-images ${HOME}/visp-images
          export VISP_INPUT_IMAGE_PATH=$HOME/visp-images
          echo ${VISP_INPUT_IMAGE_PATH}

          pwd
          mkdir build && cd build
          cmake .. -DBUILD_DEMOS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_TUTORIALS=OFF -DBUILD_JAVA=OFF -DBUILD_MODULE_visp_java=OFF -DBUILD_MODULE_visp_java_binding=OFF
          cat ViSP-third-party.txt

          make -j$(nproc)

          ctest -j$(nproc) --output-on-failure
