Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

リリースに sumomo バイナリを含めるようにする #158

Merged
merged 30 commits into from
Feb 7, 2025
Merged
Show file tree
Hide file tree
Changes from 20 commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
a8cea51
リリースに sumomo バイナリを含めるようにする
torikizi Jan 30, 2025
ba26d43
CHANGES を更新
torikizi Jan 31, 2025
ca6651e
sumomo だけを抜き出してアーカイブにする処理を見直し
torikizi Feb 1, 2025
825b725
サブシェルを使わず一つずつ実行する
torikizi Feb 1, 2025
6ea4e03
examples のビルドとリリースを SDK と分ける
torikizi Feb 5, 2025
79d0085
CHANGES を更新
torikizi Feb 5, 2025
9edd9c5
変更履歴を修正
torikizi Feb 5, 2025
89d6227
build.yml の修正を見直し
torikizi Feb 5, 2025
22db937
Ubuntu24.04 共通パッケージなので runs-on を指定する
torikizi Feb 5, 2025
0d6bb67
matrix の定義を使用できていない箇所が残っていた
torikizi Feb 5, 2025
3bee9ea
コメント追加
torikizi Feb 5, 2025
89d511a
通知の見直し
torikizi Feb 5, 2025
df076ba
コメント修正
torikizi Feb 6, 2025
b33addf
SDK の examples ビルドを戻す
torikizi Feb 6, 2025
97a4d38
CHANGES を修正
torikizi Feb 6, 2025
f87a35d
Xcode の指定を外す
torikizi Feb 6, 2025
b66298f
Xcode のバージョン指定を外す
torikizi Feb 6, 2025
74f312c
Ubuntu の examples のビルドを修正
torikizi Feb 6, 2025
7b5afd5
Merge branch 'develop' into feature/add-sumomo-release-build-binary
torikizi Feb 7, 2025
d724f90
コメントを少し見直し
torikizi Feb 7, 2025
6c5f641
不要なコメントを削除
voluntas Feb 7, 2025
46e80f9
コメントと変更履歴を整理
voluntas Feb 7, 2025
5c19bd6
インデントがおかしいのを修正する
voluntas Feb 7, 2025
38fc98c
archive で統一する
voluntas Feb 7, 2025
34de507
name 修正
voluntas Feb 7, 2025
921a800
strategy を上にする
voluntas Feb 7, 2025
875d1cb
strategy を上に持ってくる
voluntas Feb 7, 2025
b2687ce
不要なコメント削除
voluntas Feb 7, 2025
83a4559
コスメ
voluntas Feb 7, 2025
378ad70
Ubuntu は matrix.name まで指定が必要
torikizi Feb 7, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
161 changes: 158 additions & 3 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -112,8 +112,6 @@ jobs:
TEST_MATRIX_NAME: ${{ matrix.name }}
steps:
- uses: actions/checkout@v4
- name: Select Xcode 15.4
run: sudo xcode-select --switch /Applications/Xcode_15.4.app/Contents/Developer
- name: Env to output
run: |
echo "user=`users`" >> $GITHUB_OUTPUT
Expand Down Expand Up @@ -360,6 +358,155 @@ jobs:
files: ${{ steps.env.outputs.package_paths }}
prerelease: ${{ contains(github.ref, 'canary') }}

# Windows の Examples ビルド
voluntas marked this conversation as resolved.
Show resolved Hide resolved
build-windows-examples:
needs: create-release
runs-on: windows-2022
defaults:
run:
working-directory: ${{ github.workspace }}/examples
strategy:
matrix:
example:
- name: sumomo
voluntas marked this conversation as resolved.
Show resolved Hide resolved
steps:
- uses: actions/checkout@v4
- name: Build Example
run: |
python3 ${{ matrix.example.name }}/windows_x86_64/run.py
- name: Package Binary
run: |
# アップロード用にディレクトリを作って、その中にバイナリをコピーする
voluntas marked this conversation as resolved.
Show resolved Hide resolved
# sumomo_windows_x86_64.zip を作ってアップロードする
mkdir -p ${{ matrix.example.name }}_windows_x86_64
cp _build/windows_x86_64/release/${{ matrix.example.name }}/Release/${{ matrix.example.name }}.exe ${{ matrix.example.name }}_windows_x86_64/${{ matrix.example.name }}.exe
Compress-Archive -Path ${{ matrix.example.name }}_windows_x86_64 -DestinationPath ${{ matrix.example.name }}_windows_x86_64.zip
- name: Upload Examples Artifact
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.example.name }}_windows_x86_64.zip
path: examples/${{ matrix.example.name }}_windows_x86_64.zip

# macOS の Examples ビルド
build-macos-examples:
needs: create-release
runs-on: macos-14
defaults:
run:
working-directory: ${{ github.workspace }}/examples
strategy:
matrix:
example:
- name: sumomo
steps:
- uses: actions/checkout@v4
- name: Build Example
run: |
python3 ${{ matrix.example.name }}/macos_arm64/run.py
- name: Package Binary
run: |
# アップロード用に、ディレクトリを作って、その中にバイナリをコピーする
# sumomo_macos_arm64.tar.gz を作ってアップロードする
mkdir -p ${{ matrix.example.name }}_macos_arm64
cp _build/macos_arm64/release/${{ matrix.example.name }}/${{ matrix.example.name }} ${{ matrix.example.name }}_macos_arm64/${{ matrix.example.name }}
tar -czf ${{ matrix.example.name }}_macos_arm64.tar.gz ${{ matrix.example.name }}_macos_arm64
- name: Upload Examples Artifact
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.example.name }}_macos_arm64.tar.gz
path: examples/${{ matrix.example.name }}_macos_arm64.tar.gz

# Ubuntu の Examples ビルド
build-ubuntu-examples:
needs: create-release
runs-on: ${{ matrix.platform.runs-on }}
defaults:
run:
working-directory: ${{ github.workspace }}/examples
strategy:
fail-fast: false
matrix:
example:
- name: sumomo
platform:
- name: ubuntu-20.04_x86_64
runs-on: ubuntu-20.04
- name: ubuntu-22.04_x86_64
runs-on: ubuntu-22.04
- name: ubuntu-24.04_x86_64
runs-on: ubuntu-24.04
- name: ubuntu-24.04_armv8
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- name: Install deps
run: |
sudo apt-get update

# X11
sudo apt-get install -y libx11-dev libxext-dev
voluntas marked this conversation as resolved.
Show resolved Hide resolved

# OpenGL
sudo apt-get install -y libgl-dev

# ARM はクロスコンパイルのために追加のパッケージが必要なのでインストールする
- name: Install deps Ubuntu 24.04 ARM
if: matrix.platform.name == 'ubuntu-24.04_armv8'
run: |
sudo apt-get install -y multistrap binutils-aarch64-linux-gnu
# multistrap に insecure なリポジトリからの取得を許可する設定を入れる
sudo sed -e 's/Apt::Get::AllowUnauthenticated=true/Apt::Get::AllowUnauthenticated=true";\n$config_str .= " -o Acquire::AllowInsecureRepositories=true/' -i /usr/sbin/multistrap
- name: Build Example
run: |
python3 ${{ matrix.example.name }}/${{ matrix.platform.name }}/run.py
- name: Package Binary
run: |
# アップロード用にディレクトリを作って、その中にバイナリをコピーする
# ubuntu-24.04_x86_64 の場合 sumomo_ubuntu-24.04_x86_64.tar.gz を作ってアップロードする
mkdir -p ${{ matrix.example.name }}_${{ matrix.platform.name }}
cp _build/${{ matrix.platform.name }}/release/${{ matrix.example.name }}/${{ matrix.example.name }} ${{ matrix.example.name }}_${{ matrix.platform.name }}/${{ matrix.example.name }}
voluntas marked this conversation as resolved.
Show resolved Hide resolved
tar -czf ${{ matrix.example.name }}_${{ matrix.platform.name }}.tar.gz ${{ matrix.example.name }}_${{ matrix.platform.name }}
- name: Upload Examples Artifact
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.example.name }}_${{ matrix.platform.name }}.tar.gz
path: examples/${{ matrix.example.name }}_${{ matrix.platform.name }}.tar.gz

# Examples をリリース
create-release-example:
name: Create Release Examples
needs:
- build-windows-examples
- build-macos-examples
- build-ubuntu-examples
runs-on: ubuntu-24.04
strategy:
matrix:
example:
- name: sumomo
platform:
- name: windows_x86_64
file_ext: zip
- name: macos_arm64
file_ext: tar.gz
- name: ubuntu-20.04_x86_64
file_ext: tar.gz
- name: ubuntu-22.04_x86_64
file_ext: tar.gz
- name: ubuntu-24.04_x86_64
file_ext: tar.gz
- name: ubuntu-24.04_armv8
file_ext: tar.gz
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: ${{ matrix.example.name }}_${{ matrix.platform.name }}.${{ matrix.platform.file_ext }}
- name: Release Examples
uses: softprops/action-gh-release@v2
with:
files: ${{ matrix.example.name }}_${{ matrix.platform.name }}.${{ matrix.platform.file_ext }}
voluntas marked this conversation as resolved.
Show resolved Hide resolved

notification:
name: Slack Notification
runs-on: ubuntu-24.04
Expand All @@ -368,14 +515,22 @@ jobs:
- build-macos
- build-ubuntu
- create-release
- build-windows-examples
- build-macos-examples
- build-ubuntu-examples
- create-release-example
if: always()
steps:
- uses: rtCamp/action-slack-notify@v2
if: |
needs.build-windows.result == 'failure' ||
needs.build-macos.result == 'failure' ||
needs.build-ubuntu.result == 'failure' ||
needs.create-release.result == 'failure'
needs.create-release.result == 'failure' ||
needs.build-windows-examples.result == 'failure' ||
needs.build-macos-examples.result == 'failure' ||
needs.build-ubuntu-examples.result == 'failure' ||
needs.create-release-example.result == 'failure'
env:
SLACK_CHANNEL: sora-cpp-sdk
SLACK_COLOR: danger
Expand Down
13 changes: 10 additions & 3 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,16 +28,23 @@
- @melpon
- [CHANGE] `SoraVideoEncoderFactoryConfig` の `force_i420_conversion_for_simulcast_adapter` を `force_i420_conversion` に変更
- @melpon
- [CHANGE] macOS ビルド時に Xcode のバージョンを指定していたのを削除
voluntas marked this conversation as resolved.
Show resolved Hide resolved
- libwebrtc の制約で Xcode のバージョンを指定していたが、最新では制約がなくなり、指定しなくてもビルドできるようになったため
voluntas marked this conversation as resolved.
Show resolved Hide resolved
- @torikizi
- [UPDATE] CMake を 3.31.4 にあげる
- @voluntas
- [ADD] 有効なエンコーダの一覧を取得する `GetVideoCodecCapability()` 関数を追加
- @melpon
- [ADD] 利用するエンコーダ/デコーダの実装を細かく指定するためのクラス `VideoCodecPreference` を追加
- `SoraClientContextConfig::video_codec_factory_config.preference` 経由で利用できます
- @melpon
- [ADD] OpenH264 デコーダに対応する
- @melpon
- [UPDATE] CMake を 3.31.4 にあげる
- @voluntas

- [ADD] リリース時に sumomo バイナリを含めるようにする
voluntas marked this conversation as resolved.
Show resolved Hide resolved
- リアルタイムメッセージング以外の機能がほぼ全て含まれている sumomo をリリース時に含めるようにする
- sumomo はリリースバイナリを使用してビルドする
voluntas marked this conversation as resolved.
Show resolved Hide resolved
- リリースバイナリに含まれることで、ローカルビルドをせず機能確認をすることができるようになる
voluntas marked this conversation as resolved.
Show resolved Hide resolved
- @torikizi

## 2025.1.0

Expand Down