diff --git a/.github/workflows/build-debug.yml b/.github/workflows/build-debug.yml index 9f18861..eb15ee9 100644 --- a/.github/workflows/build-debug.yml +++ b/.github/workflows/build-debug.yml @@ -7,6 +7,13 @@ on: required: true type: number defualt: 10 + buildType: + required: true + type: choice + options: + - Debug + - RelWithDebInfo + default: Debug env: TEST_SIGNALING_URLS: ${{ secrets.TEST_SIGNALING_URLS }} @@ -85,15 +92,15 @@ jobs: 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 }} + key: webrtc-build-${{ inputs.buildType }}-${{ matrix.platform.name }}-${{ steps.version.outputs.webrtc_build_version }} - uses: actions/checkout@v4 - if: steps.webrtc-build-cache.outputs.cache-hit != 'true' + if: steps.webrtc-build-cache.outputs.cache-hit != 'true' && inputs.buildType == 'Debug' 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' + if: steps.webrtc-build-cache.outputs.cache-hit != 'true' && inputs.buildType == 'Debug' run: | sudo bash -c ' set -ex @@ -118,23 +125,23 @@ jobs: xz-utils ' - name: Build libwebrtc - if: steps.webrtc-build-cache.outputs.cache-hit != 'true' + if: steps.webrtc-build-cache.outputs.cache-hit != 'true' && inputs.buildType == 'Debug' working-directory: webrtc-build run: | - python3 run.py build --debug ${{ matrix.platform.name }} - python3 run.py package --debug ${{ matrix.platform.name }} + python3 run.py build ${{ inputs.buildType == 'Debug' && '--debug' }} ${{ matrix.platform.name }} + python3 run.py package ${{ inputs.buildType == 'Debug' && '--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 + path: sora-cpp-sdk/_install/${{ matrix.platform.name }}/${{ inputs.buildType == 'Debug' && 'debug' || 'release' }}/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 }} + path: sora-cpp-sdk/_install/${{ matrix.platform.name }}/${{ inputs.buildType == 'Debug' && 'debug' || 'release' }}/boost + key: boost-${{ inputs.buildType }}-${{ 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: @@ -168,7 +175,7 @@ jobs: sudo apt-get install -y software-properties-common # X11 - sudo apt-get install libx11-dev libxext-dev + sudo apt-get install -y libx11-dev libxext-dev # CUDA wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.0g-2ubuntu4_amd64.deb @@ -181,15 +188,21 @@ jobs: # 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' + if: steps.sora-cpp-sdk-cache.outputs.cache-hit != 'true' && inputs.buildType == 'Debug' 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 + mkdir -p sora-cpp-sdk/_install/${{ matrix.platform.name }}/${{ inputs.buildType == 'Debug' && 'debug' || 'release' }} + cp -r webrtc-build/_package/${{ matrix.platform.name }}/webrtc sora-cpp-sdk/_install/${{ matrix.platform.name }}/${{ inputs.buildType == 'Debug' && 'debug' || 'release' }}/webrtc + echo ${{ steps.version.outputs.webrtc_build_version }} > sora-cpp-sdk/_install/${{ matrix.platform.name }}/${{ inputs.buildType == 'Debug' && 'debug' || 'release' }}/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 }} + run: python3 run.py ${{ inputs.buildType == 'Debug' && '--debug' || '--relwithdebinfo' }} ${{ matrix.platform.name }} + - name: Teardown sora-cpp-sdk + if: steps.sora-cpp-sdk-cache.outputs.cache-hit != 'true' + run: | + # CUDA が入ってると使おうとしてエラーになるのでアンインストールしておく + sudo apt-get remove -y cuda + sudo apt-get autoremove -y # sora-python-sdk - name: Setup sora-python-sdk @@ -203,19 +216,20 @@ jobs: 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 + if: inputs.buildType == 'Debug' run: | - mkdir -p sora-python-sdk/_install/${{ matrix.platform.name }}/debug + mkdir -p sora-python-sdk/_install/${{ matrix.platform.name }}/${{ matrix.platform.name }}/${{ inputs.buildType == 'Debug' && 'debug' || 'release' }} cp -r webrtc-build/_package/${{ matrix.platform.name }}/webrtc sora-python-sdk/_install/${{ matrix.platform.name }}/webrtc echo ${{ steps.version.outputs.webrtc_build_version }} > sora-python-sdk/_install/${{ matrix.platform.name }}/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/_install/${{ matrix.platform.name }}/debug/sora sora-python-sdk/_install/${{ matrix.platform.name }}/sora + mkdir -p sora-python-sdk/_install/${{ matrix.platform.name }}/${{ matrix.platform.name }}/${{ inputs.buildType == 'Debug' && 'debug' || 'release' }} + cp -r sora-cpp-sdk/_install/${{ matrix.platform.name }}/${{ matrix.platform.name }}/${{ inputs.buildType == 'Debug' && 'debug' || 'release' }}/sora sora-python-sdk/_install/${{ matrix.platform.name }}/sora echo ${{ steps.version.outputs.sora_cpp_sdk_version }} > sora-python-sdk/_install/${{ matrix.platform.name }}/sora.version - name: Copy boost to sora-python-sdk run: | - mkdir -p sora-python-sdk/_install/${{ matrix.platform.name }}/debug - cp -r sora-cpp-sdk/_install/${{ matrix.platform.name }}/debug/boost sora-python-sdk/_install/${{ matrix.platform.name }}/boost + mkdir -p sora-python-sdk/_install/${{ matrix.platform.name }}/${{ matrix.platform.name }}/${{ inputs.buildType == 'Debug' && 'debug' || 'release' }} + cp -r sora-cpp-sdk/_install/${{ matrix.platform.name }}/${{ matrix.platform.name }}/${{ inputs.buildType == 'Debug' && 'debug' || 'release' }}/boost sora-python-sdk/_install/${{ matrix.platform.name }}/boost echo ${{ steps.version.outputs.boost_version }} > sora-python-sdk/_install/${{ matrix.platform.name }}/boost.version - uses: actions/cache@v4 id: llvm-cache @@ -237,7 +251,7 @@ jobs: set -x uv python pin ${{ matrix.python.version }} uv sync - uv run python run.py --debug ${{ matrix.platform.name }} + uv run python run.py ${{ inputs.buildType == 'Debug' && '--debug' || '--relwithdebinfo' }} ${{ matrix.platform.name }} # cache mkdir -p ../versions cp _install/${{ matrix.platform.name }}/llvm.version ../versions diff --git a/.github/workflows/build-relwithdebinfo.yml b/.github/workflows/build-relwithdebinfo.yml deleted file mode 100644 index c38fac0..0000000 --- a/.github/workflows/build-relwithdebinfo.yml +++ /dev/null @@ -1,202 +0,0 @@ -name: build-relwithdebinfo - -on: - workflow_dispatch: - inputs: - loopCount: - required: true - type: number - defualt: 10 - -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 - python: - - version: "3.10" - - version: "3.11" - - version: "3.12" - - version: "3.13" - 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 - - # sora-cpp-sdk - - uses: actions/cache@v4 - id: sora-cpp-sdk-cache - with: - path: sora-cpp-sdk/_install/${{ matrix.platform.name }}/release/sora - key: sora-cpp-sdk-${{ matrix.platform.name }}-${{ steps.version.outputs.sora_cpp_sdk_version }}-relwithdebinfo - - uses: actions/cache@v4 - id: boost-cache - with: - path: sora-cpp-sdk/_install/${{ matrix.platform.name }}/release/boost - key: boost-${{ matrix.platform.name }}-${{ steps.version.outputs.sora_cpp_sdk_version }}-relwithdebinfo - - 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 <> $GITHUB_ENV - - name: Copy sora-cpp-sdk to sora-python-sdk - run: | - mkdir -p sora-python-sdk/_install/${{ matrix.platform.name }}/release - cp -r sora-cpp-sdk/_install/${{ matrix.platform.name }}/release/sora sora-python-sdk/_install/${{ matrix.platform.name }}/sora - echo ${{ steps.version.outputs.sora_cpp_sdk_version }} > sora-python-sdk/_install/${{ matrix.platform.name }}/sora.version - - name: Copy boost to sora-python-sdk - run: | - mkdir -p sora-python-sdk/_install/${{ matrix.platform.name }}/release - cp -r sora-cpp-sdk/_install/${{ matrix.platform.name }}/release/boost sora-python-sdk/_install/${{ matrix.platform.name }}/boost - echo ${{ steps.version.outputs.boost_version }} > sora-python-sdk/_install/${{ matrix.platform.name }}/boost.version - - uses: actions/cache@v4 - id: llvm-cache - with: - path: sora-python-sdk/_install/${{ matrix.platform.name }}/llvm - key: llvm-${{ matrix.platform.name }}-${{ steps.version.outputs.sora_cpp_sdk_version }} - - uses: actions/cache@v4 - id: version-file-cache - with: - path: versions - key: versions-${{ matrix.platform.name }}-${{ steps.version.outputs.sora_cpp_sdk_version }} - - name: Copy version file - if: steps.version-file-cache.outputs.cache-hit == 'true' - run: cp versions/llvm.version sora-python-sdk/_install/${{ matrix.platform.name }}/ - - 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 --relwithdebinfo ${{ matrix.platform.name }} - # cache - mkdir -p ../versions - cp _install/${{ matrix.platform.name }}/llvm.version ../versions - - name: E2E Test sora-python-sdk - working-directory: sora-python-sdk - run: | - for i in {1..${{ inputs.loopCount || 10 }}}; do - echo "---------------- $i 回目 ----------------" - sleep 10 - lldb-18 --batch -o 'command script import test_with_llvm.py' -o 'test' - done