Skip to content

sora_sdk_jetson_jetpack_6.0.0.0 リリース #759

sora_sdk_jetson_jetpack_6.0.0.0 リリース

sora_sdk_jetson_jetpack_6.0.0.0 リリース #759

Workflow file for this run

name: build
on:
workflow_dispatch:
push:
paths-ignore:
- "doc/**"
- "**.md"
# 毎日日本時間(JST)の14:00(UTCの5:00)に実行します。
# ただし、週末は除きます。
schedule:
- cron: "0 5 * * 1-5"
jobs:
# まず pyi を生成する
# クロスコンパイル環境だと pyi が生成できないので、
# 1箇所で pyi を生成してアーティファクトにアップロードして、
# それを各ビルドで利用する形にする。
build_pyi:
runs-on: ubuntu-24.04
timeout-minutes: 60
steps:
- uses: actions/checkout@v4
- run: |
sudo apt-get -y install libva-dev libdrm-dev libx11-dev
- uses: eifinger/setup-rye@v4
- run: echo "$HOME/.rye/shims" >> $GITHUB_PATH
- run: rye pin 3.12
- run: rye sync
- name: Generate pyi
run: |
rye run python run.py ubuntu-24.04_x86_64
mkdir sora_sdk/
cp src/sora_sdk/py.typed sora_sdk/
cp src/sora_sdk/sora_sdk_ext.pyi sora_sdk/
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: sora_sdk
path: sora_sdk/
build_linux_macos:
strategy:
fail-fast: false
matrix:
platform:
# - name: ubuntu-24.04_x86_64
# target: ubuntu-24.04_x86_64
# runs_on: ubuntu-24.04
# os: ubuntu
- name: ubuntu-22.04_armv8_jetson
target: ubuntu-22.04_armv8_jetson
runs_on: ubuntu-22.04
os: ubuntu
python_version:
- "3.10"
needs: [build_pyi]
runs-on: ${{ matrix.platform.runs_on }}
timeout-minutes: 60
steps:
- uses: actions/checkout@v4
- 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
df -h
- uses: actions/download-artifact@v4
with:
name: sora_sdk
path: sora_sdk/
- run: |
cp sora_sdk/py.typed src/sora_sdk/py.typed
cp sora_sdk/sora_sdk_ext.pyi src/sora_sdk/sora_sdk_ext.pyi
# libx11-dev は Ubuntu 24.04 の時に必要になる模様
- run: |
sudo apt-get update
sudo apt-get -y install libva-dev libdrm-dev libx11-dev
if: ${{ matrix.platform.os == 'ubuntu' }}
- uses: eifinger/setup-rye@v4
- run: echo "$HOME/.rye/shims" >> $GITHUB_PATH
- run: rye pin ${{ matrix.python_version }}
- run: rye sync
# Jetson 向け
- name: Set up QEMU
if: ${{ matrix.platform.name == 'ubuntu-22.04_armv8_jetson' }}
uses: docker/setup-qemu-action@v3
- 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
rye run python run.py ${{ matrix.platform.target }}
./scripts/package.ubuntu-22.04_armv8_jetson.sh
if: ${{ matrix.platform.name == 'ubuntu-22.04_armv8_jetson' }}
env:
SORA_SDK_TARGET: ubuntu-22.04_armv8_jetson
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.platform.name }}_python-${{ matrix.python_version }}
path: "dist/"
build_windows:
needs: [build_pyi]
runs-on: windows-2022
timeout-minutes: 60
steps:
- uses: actions/checkout@v4
slack_notify_succeeded:
needs: [build_linux_macos, build_windows]
runs-on: ubuntu-latest
if: success()
steps:
- name: Slack Notification
uses: rtCamp/action-slack-notify@v2
env:
SLACK_CHANNEL: sora-python-sdk
SLACK_COLOR: good
SLACK_TITLE: SUCCEEDED
SLACK_ICON_EMOJI: ":star-struck:"
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
slack_notify_failed:
needs: [build_linux_macos, build_windows]
runs-on: ubuntu-latest
if: failure()
steps:
- name: Slack Notification
uses: rtCamp/action-slack-notify@v2
env:
SLACK_CHANNEL: sora-python-sdk
SLACK_COLOR: danger
SLACK_TITLE: "FAILED"
SLACK_ICON_EMOJI: ":japanese_ogre:"
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
create-release:
if: contains(github.ref, 'tags/202')
needs:
- build_linux_macos
- build_windows
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/download
with: { "platform": "ubuntu-22.04_armv8_jetson", "python_version": "3.10" }
- name: Env to output
run: |
echo "package_paths<<EOF" >> $GITHUB_OUTPUT
cat package_paths.env >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
id: env
- name: Release
uses: softprops/action-gh-release@v2
with:
files: ${{ steps.env.outputs.package_paths }}
prerelease: ${{ contains(github.ref, 'dev') }}
- name: Slack Notification
if: failure()
uses: rtCamp/action-slack-notify@v2
env:
SLACK_CHANNEL: sora-python-sdk
SLACK_COLOR: danger
SLACK_ICON_EMOJI: ":japanese_ogre:"
SLACK_TITLE: Release failed
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}