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: rustdesk-org/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) apt update -y apt install -y curl zip unzip tar git g++ gcc build-essential pkg-config wget nasm yasm ninja-build libjpeg8-dev libssl-dev wget https://github.com/Kitware/CMake/releases/download/v3.20.2/cmake-3.20.2.tar.gz apt remove -y --purge cmake tar -zxvf cmake-3.20.2.tar.gz cd cmake-3.20.2 ./bootstrap make make install cd - cmake --version gcc -v ;; aarch64|armv7) apt install -y curl zip unzip git esac 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 aom ;; aarch64) pushd /artifacts rm -rf rustdesk_thirdparty_lib git clone https://github.com/Kingtous/rustdesk_thirdparty_lib.git --depth=1 mkdir -p /artifacts/vcpkg/installed mv ./rustdesk_thirdparty_lib/vcpkg/installed/arm64-linux /artifacts/vcpkg/installed/arm64-linux ;; armv7) pushd /artifacts rm -rf rustdesk_thirdparty_lib git clone https://github.com/Kingtous/rustdesk_thirdparty_lib.git --depth=1 mkdir -p /artifacts/vcpkg/installed mv ./rustdesk_thirdparty_lib/vcpkg/installed/arm-linux /artifacts/vcpkg/installed/arm-linux ;; esac - name: Upload artifacts uses: actions/upload-artifact@master with: name: vcpkg-artifact-${{ matrix.job.arch }} path: | /opt/artifacts/vcpkg/installed