name: Build TDLib

on:
  push:
  pull_request:
  schedule:
    - cron: '0 0 * * 0' # weekly

jobs:
  build:
    runs-on: ubuntu-20.04
    strategy:
      matrix:
        arch: [linux/386, linux/amd64, linux/arm/v6, linux/arm/v7, linux/arm64, linux/ppc64le]

    steps:
      - name: Setup variables
        run: |
          ARCH=${{ matrix.arch }}
          SAFE_ARCH=$(echo $ARCH | sed 's/\//\-/g')
          echo "SAFE_ARCH=$SAFE_ARCH" >> $GITHUB_ENV
      - name: Install sudo package
        run: |
          (apt-get update || true) 2>/dev/null
          (apt-get install -y sudo || true) 2>/dev/null
          sudo apt update
      - uses: actions/checkout@v2
        with:
          submodules: "recursive"
      - name: Cache ccache
        id: cache-ccache
        uses: actions/cache@v2
        with:
          path: ~/.ccache
          key: ${{ runner.os }}-${{ env.SAFE_ARCH }}-ccache-all
          restore-keys: |
            ${{ runner.os }}-${{ env.SAFE_ARCH }}-ccache-
      - name: Install build tools
        run: sudo apt-get install -y make git zlib1g-dev libssl-dev gperf php-cli cmake clang-6.0 libc++-dev libc++abi-dev ccache
      - name: Build
        run: |
          mkdir build
          cd build
          CXXFLAGS="-stdlib=libc++" CC=/usr/bin/clang-10 CXX=/usr/bin/clang++-10 cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX:PATH=../tdlib ..
          cmake --build . --target install -- -j4
      - uses: actions/upload-artifact@v2
        with:
          name: tdlight-${{ env.SAFE_ARCH }}
          path: tdlib/lib

