From e746afa8f1f6fcd7442dc6ab488227bc615d1368 Mon Sep 17 00:00:00 2001 From: shenjack <3695888@qq.com> Date: Mon, 20 Nov 2023 20:34:33 +0800 Subject: [PATCH] add new work flow1 --- .github/workflows/dr_rs.yml | 2 +- .github/workflows/release.yml | 113 ++++++++++++++++++++++++++++++++++ 2 files changed, 114 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/dr_rs.yml b/.github/workflows/dr_rs.yml index c6192ed..13399c7 100644 --- a/.github/workflows/dr_rs.yml +++ b/.github/workflows/dr_rs.yml @@ -25,7 +25,7 @@ jobs: fail-fast: false matrix: os: [macos-latest, ubuntu-latest, windows-latest] - python-version: ["3.8", "3.10"] # 3.11 still not support by nuitka + python-version: ["3.8"] # 3.11 is now supported!, but just run 3.8 runs-on: ${{ matrix.os }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..39ce3e9 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,113 @@ +# 名称 +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