mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2026-07-28 21:14:03 +08:00
Add GitHub Actions workflow to build ZLMediaKit for linux/arm64 (aarch64) using the native ubuntu-24.04-arm runner. - Build container: debian:11 (glibc 2.31) for broad compatibility - Compile steps extracted into package/build_linux_arm64.sh for debugging - OpenSSL: no-asm/no-dso/-fPIC to fix aarch64 PIC relocation issues - Artifacts: Linux_ARM64_<branch>_<date> Successfully tested on my fork; artifact includes MediaServer and related binaries. Co-authored-by: yangheng <492238647@qq.com>
88 lines
2.9 KiB
YAML
88 lines
2.9 KiB
YAML
name: Linux_ARM64
|
|
|
|
on: [push, pull_request]
|
|
|
|
jobs:
|
|
build:
|
|
|
|
runs-on: ubuntu-24.04-arm
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: 下载submodule源码
|
|
run: mv -f .gitmodules_github .gitmodules && git submodule sync && git submodule update --init
|
|
|
|
- name: 下载 SRTP
|
|
uses: actions/checkout@v4
|
|
with:
|
|
repository: cisco/libsrtp
|
|
fetch-depth: 1
|
|
ref: v2.3.0
|
|
path: 3rdpart/libsrtp
|
|
|
|
- name: 下载 openssl
|
|
uses: actions/checkout@v4
|
|
with:
|
|
repository: openssl/openssl
|
|
fetch-depth: 1
|
|
ref: OpenSSL_1_1_1
|
|
path: 3rdpart/openssl
|
|
|
|
- name: 下载 usrsctp
|
|
uses: actions/checkout@v4
|
|
with:
|
|
repository: sctplab/usrsctp
|
|
fetch-depth: 1
|
|
ref: 0.9.5.0
|
|
path: 3rdpart/usrsctp
|
|
|
|
# Use Debian 11 (glibc 2.31) for broader binary compatibility.
|
|
# ubuntu:20.04 is EOL and apt mirrors often fail in 2026.
|
|
- name: 在 Docker(debian:11/arm64) 中编译
|
|
run: |
|
|
set -eux
|
|
chmod +x package/build_linux_arm64.sh
|
|
docker version
|
|
docker pull --platform linux/arm64 debian:11
|
|
docker run --platform linux/arm64 --rm \
|
|
-v "${GITHUB_WORKSPACE}:/work" \
|
|
-w /work \
|
|
debian:11 \
|
|
bash /work/package/build_linux_arm64.sh
|
|
|
|
- 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'
|
|
+ '- 说明: 本二进制为 linux/arm64(aarch64),在 debian:11(arm64, glibc 2.31) 上编译,目标机需 arm64 且 glibc >= 2.31\n'
|
|
})
|