.yaml 文件
name: Package offlineEditor.exe
on:
workflow_dispatch:
push:
branches: ["master", "main"]
jobs:
build:
strategy:
matrix:
os: ['windows-latest', 'ubuntu-latest']
python-version: ["3.10"]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
name: Checkout
- uses: actions/setup-python@v5
name: Setup Python
with:
python-version: ${{ matrix['python-version'] }}
- name: Refresh data folder from source
run: |
rm -r compiled/editor/data
cp -r src/data/ compiled/editor/data/
- name: Build Executables (Windows)
if: ${{ matrix.os == 'windows-latest' }}
run: |
Remove-Item -Path "compiled/editor/offlineEditor-windows.exe" -Force -ErrorAction SilentlyContinue
pip install pyinstaller
pyinstaller --distpath compiled/editor --workpath /tmp/win/ --name offlineEditor-windows.exe --clean --icon="src/data/icon.ico" -F src/main.py
- name: Upload Artifacts (Windows)
if: ${{ matrix.os == 'windows-latest' }}
uses: actions/upload-artifact@v4
with:
name: offlineEditor-artifact-windows
path: compiled/editor/offlineEditor-windows.exe
- name: Build Executables (Linux)
if: ${{ matrix.os == 'ubuntu-latest' }}
run: |
rm -rf compiled/editor/offlineEditor-linux.sh
pip install pyinstaller
pyinstaller --distpath compiled/editor --workpath /tmp/linux/ --name offlineEditor-linux.sh --clean --icon="src/data/icon.ico" -F src/main.py
- name: Upload Artifacts (Linux)
if: ${{ matrix.os == 'ubuntu-latest' }}
uses: actions/upload-artifact@v4
with:
name: offlineEditor-artifact-linux
path: compiled/editor/offlineEditor-linux.sh
- name: Commit Artifacts
if: always() # Stellen sicher, dass dieser Schritt immer ausgeführt wird
run: |
git config --global user.email "[email protected]"
git config --global user.name "GitHub Actions"
git pull origin main # Aktualisieren Sie zuerst lokale Änderungen
git add .
git commit -m "Automated build"
git push origin main
我尝试使用 python 代码从存储库自动构建 .exe 或 .sh。 用于构建 Windows 可执行文件的完全相同的命令在我的 powershell 上运行得非常好,并生成 ~8mb 大的 .exe
github-action 中的那个有 6.8mb 并且无法运行。
对于 Linux,我想我还需要设置 chmod +x 等等?或者人们需要做他们自己的事情吗?
目标是让 2 个可执行文件能够在各自的操作系统下运行。
我以前也遇到过类似的问题。我能够使用以下方法之一(1 或 2)解决它:
设置 PYTHONPATH。
在运行 PyInstaller 的步骤中,尝试按如下方式设置 PYTHONPATH 环境变量:
- name: Build Executables (Windows)
env:
PYTHONPATH: ${{ github.workspace }}
run: |
pyinstaller src/main.py
安装您的自定义包。
使用
setup.py
或其他方法使您的自定义包可安装。然后,在安装依赖项的过程中,使用命令pip install -e .
。
这是一个例子:
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install pyinstaller
pip install -r requirements.txt
pip install -e .
请注意,原始回复是用日语写的,作者使用翻译工具进行翻译。因此,翻译的准确性可能会有所不同。