name: Build vcpkg dependencies for linux clients on: workflow_call: jobs: build-vcpkg-deps-linux: runs-on: ${{ matrix.job.os }} strategy: fail-fast: true matrix: job: # - { arch: armv7, os: ubuntu-20.04 } - { arch: x86_64, os: ubuntu-20.04 } - { arch: aarch64, os: ubuntu-20.04 } steps: - name: Create vcpkg artifacts folder run: mkdir -p /opt/artifacts - name: Cache Vcpkg id: cache-vcpkg uses: actions/cache@v3 with: path: /opt/artifacts key: vcpkg-${{ matrix.job.arch }} - uses: Kingtous/run-on-arch-action@amd64-support name: Run vcpkg install on ${{ matrix.job.arch }} id: vcpkg with: arch: ${{ matrix.job.arch }} distro: ubuntu18.04 githubToken: ${{ github.token }} setup: | ls -l "/opt/artifacts" dockerRunArgs: | --volume "/opt/artifacts:/artifacts" shell: /bin/bash install: | apt update -y case "${{ matrix.job.arch }}" in x86_64) # CMake 3.15+ apt install -y gpg wget ca-certificates echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ bionic main' | tee /etc/apt/sources.list.d/kitware.list >/dev/null wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null apt update -y apt install -y curl zip unzip tar git cmake g++ gcc build-essential pkg-config wget nasm yasm ninja-build libjpeg8-dev ;; aarch64|armv7) apt install -y curl zip unzip tar git cmake g++ gcc build-essential pkg-config wget nasm yasm ninja-build libjpeg8-dev automake libtool esac cmake --version gcc -v run: | # disable git safe.directory git config --global --add safe.directory "*" case "${{ matrix.job.arch }}" in x86_64) export VCPKG_FORCE_SYSTEM_BINARIES=1 pushd /artifacts git clone https://github.com/microsoft/vcpkg.git || true pushd vcpkg git reset --hard ${{ env.VCPKG_COMMIT_ID }} ./bootstrap-vcpkg.sh ./vcpkg install libvpx libyuv opus ;; aarch64|armv7) pushd /artifacts # libyuv git clone https://chromium.googlesource.com/libyuv/libyuv || true pushd libyuv git pull mkdir -p build pushd build mkdir -p /artifacts/vcpkg/installed cmake .. -DCMAKE_INSTALL_PREFIX=/artifacts/vcpkg/installed make -j4 && make install popd popd # libopus, ubuntu 18.04 prebuilt is not be compiled with -fPIC wget -O opus.tar.gz http://archive.ubuntu.com/ubuntu/pool/main/o/opus/opus_1.1.2.orig.tar.gz tar -zxvf opus.tar.gz; ls -l pushd opus-1.1.2 ./autogen.sh; ./configure --prefix=/artifacts/vcpkg/installed make -j4; make install ;; esac - name: Upload artifacts uses: actions/upload-artifact@master with: name: vcpkg-artifact-${{ matrix.job.arch }} path: | /opt/artifacts/vcpkg/installed