110 lines
3.4 KiB
YAML
110 lines
3.4 KiB
YAML
name: Build Linux Binaries (x86_64 & ARM)
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
push:
|
|
tags:
|
|
- "build.*"
|
|
|
|
jobs:
|
|
build_pyc:
|
|
name: Build for pyc files only
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
with:
|
|
repository: dataelement/bisheng-telemetry-search
|
|
token: ${{ secrets.CROSS_REPO_TOKEN }}
|
|
path: bisheng-telemetry-search
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.10'
|
|
|
|
- name: Build and Clean Artifacts
|
|
working-directory: ./bisheng-telemetry-search/telemetry_search
|
|
run: |
|
|
# 执行构建
|
|
python -m compileall -b .
|
|
|
|
# 在上传前彻底清理源代码和中间文件
|
|
# 即使 build_all.py 做了清理,这里再次强制清理,防止 .c 文件泄露
|
|
find . -name "*.py" -delete
|
|
find . -name "__pycache__" -exec rm -rf {} +
|
|
|
|
# 准备输出
|
|
mkdir ../../build_output
|
|
cp -r ./* ../../build_output/
|
|
|
|
echo "Listing artifacts to be uploaded:"
|
|
ls -R ../../build_output/
|
|
|
|
- name: Upload PYC Artifacts
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: telemetry_search
|
|
path: ./build_output/*
|
|
|
|
deploy_to_sso_project:
|
|
name: Deploy Artifacts to SSO Project
|
|
needs: [ build_pyc ]
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Determine Target Branch
|
|
id: extract_branch
|
|
run: |
|
|
if [[ "${{ github.ref_type }}" == "tag" && "${{ github.ref_name }}" == build.* ]]; then
|
|
VERSION="${{ github.ref_name }}"
|
|
VERSION="${VERSION#build.}"
|
|
TARGET_BRANCH="feat/${VERSION}"
|
|
else
|
|
TARGET_BRANCH="feat/2.4.0"
|
|
fi
|
|
echo "target_branch=$TARGET_BRANCH" >> $GITHUB_OUTPUT
|
|
echo "Determined target branch: $TARGET_BRANCH"
|
|
|
|
- name: Checkout SSO Project
|
|
uses: actions/checkout@v4
|
|
with:
|
|
repository: dataelement/bisheng
|
|
token: ${{ secrets.CROSS_REPO_TOKEN }}
|
|
# 使用 ref 指定分支,而不是 base
|
|
ref: ${{ steps.extract_branch.outputs.target_branch }}
|
|
path: bisheng
|
|
# 确保拉取完整的历史以便正确提交
|
|
fetch-depth: 0
|
|
|
|
- name: Download PYC Artifacts
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: telemetry_search
|
|
path: ./telemetry_search
|
|
|
|
- name: Merge and Place Files
|
|
run: |
|
|
|
|
find ./telemetry_search -name "*.py" -delete
|
|
|
|
# 移动到目标仓库目录
|
|
cp -r ./telemetry_search ./bisheng/src/backend/bisheng/
|
|
|
|
echo "Final content of target directory:"
|
|
ls -lh ./bisheng/src/backend/bisheng/telemetry_search
|
|
|
|
- name: Commit and Push changes
|
|
working-directory: ./bisheng
|
|
run: |
|
|
git config --global user.name "github-actions[bot]"
|
|
git config --global user.email "github-actions[bot]@users.noreply.github.com"
|
|
|
|
git add .
|
|
|
|
# 检查是否有变更,有才提交
|
|
if git diff --staged --quiet; then
|
|
echo "No changes to commit"
|
|
else
|
|
git commit -m "chore: update telemetry_search build artifacts [skip ci]"
|
|
git push origin ${{ steps.extract_branch.outputs.target_branch }}
|
|
fi |