# 名称 name: Build DR nuitka # 运行条件 on: # 触发条件 push: paths: - "Difficult_Rocket/**" # 本体修改 - "libs/pyglet/**" # pyglet 修改 - ".github/workflows/**" # workflow 修改 - "nuitka_build.py" # 构建脚本修改 - "requirements*" # 依赖修改 pull_request: paths: - "Difficult_Rocket/**" # 本体修改 - "libs/pyglet/**" # pyglet 修改 - ".github/workflows/**" # workflow 修改 - "nuitka_build.py" # 构建脚本修改 - "requirements*" # 依赖修改 workflow_dispatch: # 主任务 jobs: build-nuitka: if: ${{!startsWith(github.event.ref, 'refs/tags/') && contains(github.event.head_commit.message, '[build skip]') == false }} # 全都要! strategy: fail-fast: false matrix: os: [macos-latest, ubuntu-latest, windows-latest] python-version: ["3.8"] # 3.11 still not support by nuitka 3.10 就不构建了 少消耗一些时间 runs-on: ${{ matrix.os }} steps: # Check-out repository - name: Check out uses: actions/checkout@v4 # 初始化子模块 - name: Init submodules run: | git submodule init git submodule update # 安装 Python - name: Setup Python ${{ matrix.python-version }} uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} # 为了支持 win7 我还是得用 3.8 architecture: 'x64' # optional x64 or x86. Defaults to x64 if not specified cache: 'pip' cache-dependency-path: | **/requirement-dev.txt # 安装特殊依赖 - name: Install git denpendencies run: | pip install libs/lib_not_dr pip install libs/pyglet # 安装依赖 - name: Install env run: | pip install -r requirement-dev.txt # 使用 ruff 检查一遍仓库 - name: Ruff check if: runner.os == 'Windows' && matrix.python-version == '3.8' # 只在 windows 的 python 3.8 上检查 减少无用报错 run: | pip install ruff ruff check . --exit-zero # 提取 DR 版本和其他信息 - name: Display Difficult-Rocket info id: DR_info shell: pwsh run: | $infos = python .github/workflows/get_info.py -github Write-Output $infos >> $env:GITHUB_ENV python .github/workflows/get_info.py # 使用新的 nuitka_build.py - name: Build by nuitka shell: pwsh run: | python -m lndl_nuitka . -y # 集成的构建脚本 好耶! # 获取短 sha - name: Get short commit sha id: get_short_sha shell: pwsh run: | $short_sha = Write-Output $env:GITHUB_SHA $short_sha = $short_sha.substring(1,7) Write-Output $short_sha Write-Output "short_sha=$short_sha" >> $env:GITHUB_ENV # Uploads artifact - name: Upload Artifact uses: actions/upload-artifact@v3 with: name: Difficult-Rocket_v${{env.DR_version}}-${{runner.os}}${{matrix.python-version}}-Build.${{github.run_number}}+${{env.short_sha}}.zip path: | build/github/DR.dist