Difficult-Rocket/.github/workflows/nuitka.yml
shenjack e16a286fe3 Update nuitka.yml
suppport macos

Update nuitka.yml

Update nuitka.yml

Update nuitka.yml

Update nuitka.yml

some manage

no need to test

Update nuitka.yml

Update post_compile.py

Update post_compile.py

ruaaaa

Update post_compile.py

离谱

aaaaa

Update nuitka.yml

my bad

Update nuitka.yml

Update nuitka.yml

Update nuitka.yml

我不理解

?????????

action崩了啊,那没事了

啊啊啊啊

恢复啦?

酱紫改?

Update nuitka.yml

Update nuitka.yml

草,为啥

Update nuitka.yml

Update nuitka.yml

Update nuitka.yml

Update nuitka.yml

这样的路径?

woshishabi

Update nuitka.yml

Update nuitka.yml

Update nuitka.yml

Update post_build.py

Update nuitka.yml

Update nuitka.yml

Update nuitka.yml

aaaaaa

Update nuitka.yml

Update nuitka.yml

Update setup.py

Update nuitka.yml

Update nuitka.yml

Update post_compile.py

Update post_compile.py

Update post_compile.py

Update post_compile.py

Update post_compile.py

Update post_compile.py

Update post_compile.py

Update post_compile.py

try copy

aaaaaa

Update nuitka.yml

Update nuitka.yml

Update nuitka.yml

like this?

Update post_compile.py

Update post_compile.py

Update post_compile.py

Update post_compile.py

Update post_compile.py

Update post_compile.py

这么改?

Update post_compile.py

Update nuitka.yml

Update nuitka.yml
2023-03-06 21:08:58 +08:00

180 lines
6.4 KiB
YAML

# 名称
name: Build
# 运行条件
on:
# 触发条件
push:
branches: ["main"]
pull_request:
branches: ["main"]
workflow_dispatch:
# 主任务
jobs:
build:
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.10"] # 3.11 still not support by nuitka
runs-on: ${{ matrix.os }}
steps:
# Check-out repository
- name: Check out
uses: actions/checkout@v3
# 获取短 sha
- name: Get short commit sha
id: get_short_sha
shell: pwsh
run: |
# short_sha=$(echo ${GITHUB_SHA} | cut -c1-7)
# echo "short_sha=$short_sha" >> $GITHUB_OUTPUT
# echo $GITHUB_OUTPUT
$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
# 安装 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
# 安装 Rust
# - name: Setup | Rust
# uses: ATiltedTree/setup-rust@v1
# with:
# rust-version: nightly
# 安装依赖
- 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 --format github
# 提取 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
# 这堆构建脚本全都是我自己写的
- name: DR-rs build
shell: pwsh
run: |
cd libs/Difficult_Rocket_rs/src
python setup.py build
python post_build.py
python setup.py clean
cd ..
cd ..
cd ..
# 还是得我自己写脚本
- name: Build on Windows
if: runner.os == 'Windows'
shell: pwsh
run: |
$arg = @()
# 输出配置
$arg += @("--standalone")
$arg += @("--output-dir=build")
$arg += @("--company-name=tool-shenjack-workshop")
$arg += @("--product-name=Difficult-Rocket")
$arg += @("--product-version=$env:DR_version")
$arg += @("--file-version=$env:Build_version")
$arg += @("--file-description=Difficult-Rocket!")
$arg += @("--windows-icon-from-ico=textures/icon.png")
# $arg += @("--macos-app-icon=textures/icon.png")
# 编译器配置
$arg += @("--msvc=latest")
$arg += @("--clang")
$arg += @("--lto=no")
# 包配置
$arg += @("--nofollow-import-to=libs.Difficult_Rocket_rs")
# 数据配置
$arg += @("--include-data-dir=./libs/pyglet=./pyglet")
# $arg += @("--include-data-dir=./libs/fonts=./libs/fonts")
$arg += @("--include-data-dir=./textures=./textures")
$arg += @("--include-data-dir=./configs=./configs")
# 编译配置
# $arg += @("--show-progress")
$arg += @("--assume-yes-for-download")
python -m nuitka $arg DR.py
- name: Build on MacOS / Linux
if: ${{ runner.os == 'macOS' || runner.os == 'Linux' }}
shell: pwsh
run: |
$arg = @()
# 输出配置
$arg += @("--standalone")
$arg += @("--output-dir=build")
$arg += @("--company-name=tool-shenjack-workshop")
$arg += @("--product-name=Difficult-Rocket")
$arg += @("--product-version=$env:DR_version")
$arg += @("--file-version=$env:Build_version")
$arg += @("--file-description=Difficult-Rocket!")
# $arg += @("--windows-icon-from-ico=textures/icon.png")
$arg += @("--macos-app-icon=textures/icon.png")
# 编译器配置
$arg += @("--clang")
$arg += @("--lto=no")
# 包配置
$arg += @("--nofollow-import-to=libs.Difficult_Rocket_rs")
# 数据配置
$arg += @("--include-data-dir=./libs/pyglet=./pyglet")
# $arg += @("--include-data-dir=./libs/fonts=./libs/fonts")
$arg += @("--include-data-dir=./textures=./textures")
$arg += @("--include-data-dir=./configs=./configs")
# 编译配置
# $arg += @("--show-progress")
$arg += @("--assume-yes-for-download")
python -m nuitka $arg DR.py
- name: after build
shell: pwsh
run: |
Get-ChildItem libs/fonts/Fira_Code -Recurse | Remove-Item -Force
Get-ChildItem libs/fonts/scientifica -Recurse | Remove-Item -Force
Remove-Item libs/fonts/Monocraft.otf -Force
Remove-Item libs/fonts/SmileySans-Oblique.ttf -Force
Get-ChildItem libs/fonts/HarmonyOS_Sans/HarmonyOS_Sans_Condensed/* -Recurse | Remove-Item -Force
Get-ChildItem libs/fonts/HarmonyOS_Sans/HarmonyOS_Sans/* -Recurse | Remove-Item -Force
Copy-Item libs/fonts build\DR.dist\libs\fonts -Recurse
Copy-Item libs\pyglet\ build\DR.dist -Recurse
# Copy-Item -Path "libs\Difficult_Rocket_rs\lib\*" -Destination "build\DR.dist\libs\Difficult_Rocket_rs\lib" -Recurse
Rename-Item build/DR.dist Difficult-Rocket
python ./.github/workflows/post_compile.py
# 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}}
path: |
build/main.zip