# 名称 name: Build DR release # 运行条件 on: # 触发条件 workflow_dispatch: # 主任务 jobs: build-release: # 全都要! strategy: fail-fast: false matrix: os: [macos-latest, ubuntu-latest, windows-latest] python-version: ["3.8", "3.9", "3.10", "3.11"] # 老子全都要 ! 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 # 缓存 Rust 构建 - name: Cache rust uses: Swatinem/rust-cache@v2 with: workspaces: mods/dr_game/Difficult_Rocket_rs key: dr_release_v1 # 安装 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 .github/workflows/requirement.txt # 安装 pyglet - name: Install pyglet run: | pip install git+https://github.com/shenjackyuanjie/pyglet.git # 安装依赖 - name: Install env run: | pip install -r requirement-dev.txt # 提取 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 nuitka_build.py --github # 集成的构建脚本 好耶! # 编译 dr_rs - name: Build dr_rs shell: pwsh run: | Set-Location mods/dr_game/Difficult_Rocket_rs/src python setup.py build python post_build.py python setup.py clean cd .. Remove-Item -Recurse -Force src # 获取短 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 # Uploads artifact - name: Upload Artifact uses: actions/upload-artifact@v3 with: name: DR_rs${{env.DR_version}}-${{runner.os}}${{matrix.python-version}}-Build.${{github.run_number}}+${{env.short_sha}} path: | mods/dr_game