mirror of
https://gitee.com/xia-chu/ZLMediaKit.git
synced 2026-05-20 00:37:49 +08:00
新增Linux_Python ci
This commit is contained in:
parent
b5ae51c659
commit
951a823e86
172
.github/workflows/linux_py.yml
vendored
Normal file
172
.github/workflows/linux_py.yml
vendored
Normal file
@ -0,0 +1,172 @@
|
|||||||
|
name: Linux_Python
|
||||||
|
|
||||||
|
on: [push, pull_request]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
|
||||||
|
runs-on: ubuntu-24.04
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v1
|
||||||
|
|
||||||
|
- name: 下载submodule源码
|
||||||
|
run: mv -f .gitmodules_github .gitmodules && git submodule sync && git submodule update --init
|
||||||
|
|
||||||
|
- name: 下载 SRTP
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
repository: cisco/libsrtp
|
||||||
|
fetch-depth: 1
|
||||||
|
ref: v2.3.0
|
||||||
|
path: 3rdpart/libsrtp
|
||||||
|
|
||||||
|
- name: 下载 openssl
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
repository: openssl/openssl
|
||||||
|
fetch-depth: 1
|
||||||
|
ref: OpenSSL_1_1_1
|
||||||
|
path: 3rdpart/openssl
|
||||||
|
|
||||||
|
- name: 下载 usrsctp
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
repository: sctplab/usrsctp
|
||||||
|
fetch-depth: 1
|
||||||
|
ref: 0.9.5.0
|
||||||
|
path: 3rdpart/usrsctp
|
||||||
|
|
||||||
|
- name: 启动 Docker 容器, 在Docker 容器中执行脚本
|
||||||
|
run: |
|
||||||
|
docker pull centos:7
|
||||||
|
docker run -v $(pwd):/root -w /root --rm centos:7 sh -c "
|
||||||
|
#!/bin/bash
|
||||||
|
set -x
|
||||||
|
|
||||||
|
# Backup original CentOS-Base.repo file
|
||||||
|
cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
|
||||||
|
|
||||||
|
# Define new repository configuration
|
||||||
|
cat <<EOF > /etc/yum.repos.d/CentOS-Base.repo
|
||||||
|
[base]
|
||||||
|
name=CentOS-7 - Base - mirrors.aliyun.com
|
||||||
|
baseurl=http://mirrors.aliyun.com/centos/7/os/x86_64/
|
||||||
|
gpgcheck=1
|
||||||
|
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
|
||||||
|
|
||||||
|
[updates]
|
||||||
|
name=CentOS-7 - Updates - mirrors.aliyun.com
|
||||||
|
baseurl=http://mirrors.aliyun.com/centos/7/updates/x86_64/
|
||||||
|
gpgcheck=1
|
||||||
|
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
|
||||||
|
EOF
|
||||||
|
cat > /etc/yum.repos.d/epel-aliyun.repo <<EOF
|
||||||
|
[epel]
|
||||||
|
name=Extra Packages for Enterprise Linux 7 - x86_64
|
||||||
|
baseurl=http://mirrors.aliyun.com/epel/7/x86_64/
|
||||||
|
enabled=1
|
||||||
|
gpgcheck=0
|
||||||
|
EOF
|
||||||
|
cat > /etc/yum.repos.d/CentOS-SCLo-aliyun.repo <<EOF
|
||||||
|
[C7-SCLo-rh]
|
||||||
|
name=CentOS-7 SCLo RH - x86_64
|
||||||
|
baseurl=http://mirrors.aliyun.com/centos/7/sclo/x86_64/rh/
|
||||||
|
enabled=1
|
||||||
|
gpgcheck=0
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Clean yum cache and recreate it
|
||||||
|
yum clean all
|
||||||
|
yum makecache
|
||||||
|
|
||||||
|
echo \"CentOS 7 软件源已成功切换\"
|
||||||
|
yum install -y git wget gcc gcc-c++ make which devtoolset-11
|
||||||
|
|
||||||
|
# === 1. 下载并静默安装 Miniconda ===
|
||||||
|
wget -q https://repo.anaconda.com/miniconda/Miniconda3-py39_23.3.1-0-Linux-x86_64.sh -O miniconda.sh
|
||||||
|
bash miniconda.sh -b -p "$HOME/miniconda" # -b 表示 batch(静默安装)
|
||||||
|
export PATH="$HOME/miniconda/bin:$PATH"
|
||||||
|
|
||||||
|
# === 2. 初始化 conda(非交互模式) ===
|
||||||
|
source "$HOME/miniconda/etc/profile.d/conda.sh"
|
||||||
|
|
||||||
|
# === 3. 创建 Python 3.11 环境 ===
|
||||||
|
conda create -n py11 python=3.11 -y
|
||||||
|
|
||||||
|
# === 4. 激活环境 ===
|
||||||
|
conda activate py11
|
||||||
|
|
||||||
|
# === 5. 验证环境 ===
|
||||||
|
python --version
|
||||||
|
|
||||||
|
# === 6. 安装必要模块 ===
|
||||||
|
conda install -y pip setuptools jinja2 wheel
|
||||||
|
|
||||||
|
mkdir -p /root/install
|
||||||
|
|
||||||
|
cd 3rdpart/openssl
|
||||||
|
./config no-shared --prefix=/root/install
|
||||||
|
make -j $(nproc)
|
||||||
|
make install
|
||||||
|
cd ../../
|
||||||
|
|
||||||
|
wget https://github.com/Kitware/CMake/releases/download/v3.29.5/cmake-3.29.5.tar.gz
|
||||||
|
tar -xf cmake-3.29.5.tar.gz
|
||||||
|
cd cmake-3.29.5
|
||||||
|
OPENSSL_ROOT_DIR=/root/install ./configure
|
||||||
|
make -j $(nproc)
|
||||||
|
make install
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
cd 3rdpart/usrsctp
|
||||||
|
mkdir build
|
||||||
|
cd build
|
||||||
|
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_POSITION_INDEPENDENT_CODE=ON ..
|
||||||
|
make -j $(nproc)
|
||||||
|
make install
|
||||||
|
cd ../../../
|
||||||
|
|
||||||
|
cd 3rdpart/libsrtp && ./configure --enable-openssl --with-openssl-dir=/root/install && make -j $(nproc) && make install
|
||||||
|
cd ../../
|
||||||
|
|
||||||
|
source /opt/rh/devtoolset-11/enable
|
||||||
|
gcc --version
|
||||||
|
|
||||||
|
mkdir -p linux_build && cd linux_build && cmake .. -DENABLE_PYTHON=ON -DPYTHON_EXECUTABLE=$(which python3.14) -DOPENSSL_ROOT_DIR=/root/install -DCMAKE_BUILD_TYPE=Release && make -j $(nproc)
|
||||||
|
"
|
||||||
|
|
||||||
|
- name: 设置环境变量
|
||||||
|
run: |
|
||||||
|
echo "BRANCH=$(echo ${GITHUB_REF#refs/heads/} | tr -s "/\?%*:|\"<>" "_")" >> $GITHUB_ENV
|
||||||
|
echo "BRANCH2=$(echo ${GITHUB_REF#refs/heads/} )" >> $GITHUB_ENV
|
||||||
|
echo "DATE=$(date +%Y-%m-%d)" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: 打包二进制
|
||||||
|
id: upload
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: ${{ github.workflow }}_${{ env.BRANCH }}_${{ env.DATE }}
|
||||||
|
path: release/*
|
||||||
|
if-no-files-found: error
|
||||||
|
retention-days: 90
|
||||||
|
|
||||||
|
- name: issue评论
|
||||||
|
if: github.event_name != 'pull_request' && github.ref != 'refs/heads/feature/test'
|
||||||
|
uses: actions/github-script@v7
|
||||||
|
with:
|
||||||
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
script: |
|
||||||
|
github.rest.issues.createComment({
|
||||||
|
issue_number: ${{vars.VERSION_ISSUE_NO}},
|
||||||
|
owner: context.repo.owner,
|
||||||
|
repo: context.repo.repo,
|
||||||
|
body: '- 下载地址: [${{ github.workflow }}_${{ env.BRANCH }}_${{ env.DATE }}](${{ steps.upload.outputs.artifact-url }})\n'
|
||||||
|
+ '- 分支: ${{ env.BRANCH2 }}\n'
|
||||||
|
+ '- git hash: ${{ github.sha }} \n'
|
||||||
|
+ '- 编译日期: ${{ env.DATE }}\n'
|
||||||
|
+ '- 编译记录: [${{ github.run_id }}](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }})\n'
|
||||||
|
+ '- 打包ci名: ${{ github.workflow }}\n'
|
||||||
|
+ '- 开启特性: openssl/webrtc/datachannel\n'
|
||||||
|
+ '- 说明: 本二进制在centos7(x64)上编译,请确保您的机器系统不低于此版本;本程序依赖python3.11, 运行前请miniconda安装python3.11\n'
|
||||||
|
})
|
||||||
Loading…
Reference in New Issue
Block a user