メインのビルド #11
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: build-debug | |
on: | |
workflow_dispatch: | |
push: | |
paths-ignore: | |
- "examples/**" | |
- "**.md" | |
env: | |
TEST_SIGNALING_URLS: ${{ secrets.TEST_SIGNALING_URLS }} | |
TEST_CHANNEL_ID_PREFIX: ${{ secrets.TEST_CHANNEL_ID_PREFIX }} | |
TEST_SECRET_KEY: ${{ secrets.TEST_SECRET_KEY }} | |
TEST_API_URL: ${{ secrets.TEST_API_URL }} | |
jobs: | |
build-linux: | |
strategy: | |
fail-fast: false | |
matrix: | |
platform: | |
- name: ubuntu-24.04_x86_64 | |
runs-on: ubuntu-24.04 | |
runs-on: ${{ matrix.platform.runs-on }} | |
steps: | |
- name: Disk Cleanup | |
run: | | |
set -x | |
df -h | |
# sudo du -h -d1 /usr/local | |
# sudo du -h -d1 /usr/local/share | |
# sudo du -h -d1 /usr/local/lib | |
# sudo du -h -d1 /usr/share | |
RMI=`docker images -q -a` | |
if [ -n "$RMI" ]; then | |
docker rmi $RMI | |
fi | |
# 4.6G | |
sudo rm -rf /usr/local/.ghcup | |
# 1.7G | |
sudo rm -rf /usr/share/swift | |
# 1.4G | |
sudo rm -rf /usr/share/dotnet | |
# 13G | |
sudo rm -rf /usr/local/lib/android | |
df -h | |
- name: Get stats | |
run: | | |
set -x | |
cat /etc/lsb-release | |
uname -a | |
cat /proc/cpuinfo | |
cat /proc/meminfo | |
- name: Setup Git User | |
run: | | |
git config --global user.name "${{ github.actor }}" | |
git config --global user.email "${{ github.actor }}@users.noreply.github.com" | |
- name: Setup common | |
run: | | |
# clang-18 | |
wget https://apt.llvm.org/llvm.sh | |
chmod a+x llvm.sh | |
sudo ./llvm.sh 18 | |
- uses: actions/checkout@v4 | |
with: | |
path: sora-python-sdk | |
- name: Get versions | |
id: version | |
run: | | |
source sora-python-sdk/VERSION | |
echo "webrtc_build_version=${WEBRTC_BUILD_VERSION}" >> $GITHUB_OUTPUT | |
echo "sora_cpp_sdk_version=${SORA_CPP_SDK_VERSION}" >> $GITHUB_OUTPUT | |
echo "boost_version=${BOOST_VERSION}" >> $GITHUB_OUTPUT | |
# libwebrtc | |
- uses: actions/cache@v4 | |
id: webrtc-build-cache | |
with: | |
path: webrtc-build/_package/${{ matrix.platform.name }}/webrtc | |
key: webrtc-build-${{ matrix.platform.name }}-${{ steps.version.outputs.webrtc_build_version }} | |
- uses: actions/checkout@v4 | |
if: steps.webrtc-build-cache.outputs.cache-hit != 'true' | |
with: | |
path: webrtc-build | |
repository: shiguredo-webrtc-build/webrtc-build | |
ref: ${{ steps.version.outputs.webrtc_build_version }} | |
- name: Setup libwebrtc | |
if: steps.webrtc-build-cache.outputs.cache-hit != 'true' | |
run: | | |
sudo bash -c ' | |
set -ex | |
apt-get -y install tzdata | |
echo "Asia/Tokyo" > /etc/timezone | |
dpkg-reconfigure -f noninteractive tzdata | |
export DEBIAN_FRONTEND=noninteractive | |
apt-get -y install \ | |
binutils \ | |
git \ | |
locales \ | |
lsb-release \ | |
ninja-build \ | |
pkg-config \ | |
python3 \ | |
python3-setuptools \ | |
rsync \ | |
sudo \ | |
unzip \ | |
vim \ | |
wget \ | |
xz-utils | |
' | |
- name: Build libwebrtc | |
if: steps.webrtc-build-cache.outputs.cache-hit != 'true' | |
working-directory: webrtc-build | |
run: | | |
python3 run.py build --debug ${{ matrix.platform.name }} | |
python3 run.py package --debug ${{ matrix.platform.name }} | |
# sora-cpp-sdk | |
- uses: actions/cache@v4 | |
id: sora-cpp-sdk-cache | |
with: | |
path: sora-cpp-sdk/_install/${{ matrix.platform.name }}/debug/sora | |
key: sora-cpp-sdk-${{ matrix.platform.name }}-${{ steps.version.outputs.sora_cpp_sdk_version }} | |
- uses: actions/cache@v4 | |
id: boost-cache | |
with: | |
path: sora-cpp-sdk/_install/${{ matrix.platform.name }}/debug/boost | |
key: boost-${{ matrix.platform.name }}-${{ steps.version.outputs.sora_cpp_sdk_version }} | |
- uses: actions/checkout@v4 | |
if: steps.sora-cpp-sdk-cache.outputs.cache-hit != 'true' | |
with: | |
path: sora-cpp-sdk | |
repository: shiguredo/sora-cpp-sdk | |
ref: ${{ steps.version.outputs.sora_cpp_sdk_version }} | |
# Ubuntu 24.04 だと libtinfo5 が見つからない問題があるので、その修正 | |
# ref: https://qiita.com/gengen16k/items/88cf3c18a40a94205fab | |
- name: Fix CUDA issues for Ubuntu 24.04 | |
if: steps.sora-cpp-sdk-cache.outputs.cache-hit != 'true' && matrix.platform.name == 'ubuntu-24.04_x86_64' | |
run: | | |
sudo tee /etc/apt/sources.list.d/jammy.list << EOF | |
deb http://archive.ubuntu.com/ubuntu/ jammy universe | |
EOF | |
sudo tee /etc/apt/preferences.d/pin-jammy <<EOF | |
Package: * | |
Pin: release n=jammy | |
Pin-Priority: -10 | |
Package: libtinfo5 | |
Pin: release n=jammy | |
Pin-Priority: 990 | |
EOF | |
- name: Setup sora-cpp-sdk | |
if: steps.sora-cpp-sdk-cache.outputs.cache-hit != 'true' | |
working-directory: sora-cpp-sdk | |
run: | | |
source VERSION | |
sudo apt-get update | |
sudo apt-get install -y software-properties-common | |
# X11 | |
sudo apt-get install libx11-dev libxext-dev | |
# CUDA | |
wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.0g-2ubuntu4_amd64.deb | |
sudo dpkg -i libssl1.1_1.1.0g-2ubuntu4_amd64.deb | |
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-keyring_1.0-1_all.deb | |
sudo dpkg -i cuda-keyring_*all.deb | |
sudo apt-get update | |
DEBIAN_FRONTEND=noninteractive sudo apt-get -y install cuda=$CUDA_VERSION | |
# Intel Media SDK のために libva-dev, libdrm-dev を入れる | |
DEBIAN_FRONTEND=noninteractive sudo apt-get -y install libva-dev libdrm-dev | |
- name: Copy libwebrtc to sora-cpp-sdk | |
if: steps.sora-cpp-sdk-cache.outputs.cache-hit != 'true' | |
run: | | |
mkdir -p sora-cpp-sdk/_install/${{ matrix.platform.name }}/debug | |
cp -r webrtc-build/_package/${{ matrix.platform.name }}/webrtc sora-cpp-sdk/_install/${{ matrix.platform.name }}/debug/webrtc | |
echo ${{ steps.version.outputs.webrtc_build_version }} > sora-cpp-sdk/_install/${{ matrix.platform.name }}/debug/webrtc.version | |
- name: Build sora-cpp-sdk | |
if: steps.sora-cpp-sdk-cache.outputs.cache-hit != 'true' | |
working-directory: sora-cpp-sdk | |
run: python3 run.py --debug ${{ matrix.platform.name }} | |
# sora-python-sdk | |
- name: Setup sora-python-sdk | |
run: | | |
sudo apt-get update | |
sudo apt-get -y install libva2 libdrm2 libva-dev libdrm-dev libx11-dev portaudio19-dev | |
# Download OpneH264 | |
curl -LO http://ciscobinary.openh264.org/libopenh264-2.4.1-linux64.7.so.bz2 | |
bzip2 -d libopenh264-2.4.1-linux64.7.so.bz2 | |
mv libopenh264-2.4.1-linux64.7.so libopenh264.so | |
echo "OPENH264_PATH=`pwd`/libopenh264.so" >> $GITHUB_ENV | |
- name: Copy libwebrtc to sora-python-sdk | |
run: | | |
mkdir -p sora-python-sdk/_install/${{ matrix.platform.name }}/debug | |
cp -r webrtc-build/_package/${{ matrix.platform.name }}/webrtc sora-python-sdk/_install/${{ matrix.platform.name }}/debug/webrtc | |
echo ${{ steps.version.outputs.webrtc_build_version }} > sora-python-sdk/_install/${{ matrix.platform.name }}/debug/webrtc.version | |
- name: Copy sora-cpp-sdk to sora-python-sdk | |
run: | | |
mkdir -p sora-python-sdk/_install/${{ matrix.platform.name }}/debug | |
cp -r sora-cpp-sdk/_package/${{ matrix.platform.name }}/sora sora-python-sdk/_install/${{ matrix.platform.name }}/debug/sora | |
echo ${{ steps.version.outputs.sora_cpp_sdk_version }} > sora-python-sdk/_install/${{ matrix.platform.name }}/debug/sora.version | |
- name: Copy boost to sora-python-sdk | |
run: | | |
mkdir -p sora-python-sdk/_install/${{ matrix.platform.name }}/debug | |
cp -r boost/_package/${{ matrix.platform.name }}/boost boost/_install/${{ matrix.platform.name }}/debug/boost | |
echo ${{ steps.version.outputs.boost_version }} > sora-python-sdk/_install/${{ matrix.platform.name }}/debug/boost.version | |
- uses: actions/cache@v4 | |
id: llvm-cache | |
with: | |
path: sora-python-sdk/_package/${{ matrix.platform.name }}/llvm | |
key: llvm-${{ matrix.platform.name }}-${{ steps.version.outputs.sora_cpp_sdk }} | |
- uses: actions/cache@v4 | |
id: version-file-cache | |
with: | |
path: versions | |
key: versions-${{ matrix.platform.name }}-${{ steps.version.outputs.sora_cpp_sdk }} | |
- run: cp versions/llvm.version sora-python-sdk/_install/${{ matrix.platform.name }}/debug/ | |
- uses: astral-sh/setup-uv@v3 | |
- name: Build sora-python-sdk | |
working-directory: sora-python-sdk | |
run: | | |
set -x | |
# uv python pin ${{ matrix.python_version }} | |
uv sync | |
uv run python run.py --debug ${{ matrix.platform.target }} | |
# cache | |
mkdir ../versions | |
cp _install/${{ matrix.platform.name }}/debug/llvm.version ../versions | |
- name: E2E Test sora-python-sdk | |
working-directory: sora-python-sdk | |
run: | | |
lldb-18 -o 'settings set target.process.follow-fork-mode child' -o run -o continue -o 'bt all' -o 'exit' -- uv run pytest tests -s |