140 lines
5.0 KiB
YAML
140 lines
5.0 KiB
YAML
name: "Build for PR"
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
on:
|
|
pull_request:
|
|
|
|
jobs:
|
|
windows:
|
|
runs-on: windows-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
python_version:
|
|
- "3.11"
|
|
name: Windows Python ${{ matrix.python_version }}
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- uses: ilammy/msvc-dev-cmd@v1
|
|
|
|
- name: Use Python ${{ matrix.python_version }}
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: ${{ matrix.python_version }}
|
|
|
|
- name: 🧳 Install dependencies
|
|
run: |
|
|
echo y | pip install --no-python-version-warning --disable-pip-version-check pyinstaller
|
|
echo y | pip install --no-python-version-warning --disable-pip-version-check nuitka
|
|
echo y | pip install --no-python-version-warning --disable-pip-version-check zstandard
|
|
echo y | pip install --no-python-version-warning --disable-pip-version-check pygame
|
|
echo y | pip install --no-python-version-warning --disable-pip-version-check ordered-set
|
|
|
|
# 使用pyinstaller构建
|
|
- name: Build pypvz with pyinstaller
|
|
run: |
|
|
pyinstaller -F pypvz.py `
|
|
-n pypvz-with-python${{ matrix.python_version }}-pyinstaller-x64.exe `
|
|
--distpath ./out `
|
|
--noconsole `
|
|
--add-data="resources;./resources" `
|
|
--add-data="pypvz-exec-logo.png;./pypvz-exec-logo.png" `
|
|
-i ./pypvz.ico
|
|
|
|
- name: Release the version built by pyinstaller
|
|
uses: ncipollo/release-action@v1
|
|
with:
|
|
allowUpdates: true
|
|
tag: Dev.Version.Built.with.Pyinstaller
|
|
artifacts: ./out/*pyinstaller*.exe
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
# 使用Nuitka构建
|
|
- name: Show nuitka version
|
|
run: |
|
|
Get-ChildItem env:
|
|
python -m nuitka --version
|
|
|
|
- name: Build pypvz with Nuitka
|
|
run: |
|
|
echo y | python -m nuitka --standalone `
|
|
--onefile `
|
|
--show-progress `
|
|
--show-memory `
|
|
--output-dir=out `
|
|
--windows-icon-from-ico=pypvz.ico `
|
|
--include-data-file=c:\hostedtoolcache\windows\python\${{ matrix.python_version }}*\x64\lib\site-packages\pygame\libogg-0.dll=libogg-0.dll `
|
|
--include-data-file=c:\hostedtoolcache\windows\python\${{ matrix.python_version }}*\x64\lib\site-packages\pygame\libopus-0.dll=libopus-0.dll `
|
|
--include-data-file=c:\hostedtoolcache\windows\python\${{ matrix.python_version }}*\x64\lib\site-packages\pygame\libopusfile-0.dll=libopusfile-0.dll `
|
|
--include-data-file=c:\hostedtoolcache\windows\python\${{ matrix.python_version }}*\x64\lib\site-packages\pygame\libjpeg-9.dll=libjpeg-9.dll `
|
|
--include-data-dir=resources=resources `
|
|
--windows-disable-console `
|
|
-o pypvz-with-python${{ matrix.python_version }}-nuitka-windows-x64.exe `
|
|
pypvz.py
|
|
|
|
- name: Release the version built by nuitka
|
|
uses: ncipollo/release-action@v1
|
|
with:
|
|
allowUpdates: true
|
|
tag: Dev
|
|
artifacts: ./out/*nuitka*.exe
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
|
|
linux:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
python_version:
|
|
- "3.11"
|
|
name: Ubuntu Python ${{ matrix.python_version }}
|
|
steps:
|
|
- name: 🛎️ Checkout
|
|
uses: actions/checkout@v2
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: 🐍 Use Python ${{ matrix.python_version }}
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: ${{ matrix.python_version }}
|
|
|
|
- name: 🧳 Install dependencies
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install patchelf gdb ccache libfuse2 zstd tar
|
|
python -m pip install --no-python-version-warning --disable-pip-version-check zstandard appdirs ordered-set tqdm Jinja2
|
|
python -m pip install --no-python-version-warning --disable-pip-version-check nuitka
|
|
python -m pip install --no-python-version-warning --disable-pip-version-check pygame
|
|
|
|
# 使用Nuitka构建
|
|
- name: Show nuitka version
|
|
run: |
|
|
env
|
|
python -m nuitka --version
|
|
|
|
- name: Build pypvz with Nuitka
|
|
run: |
|
|
yes | python -m nuitka \
|
|
--onefile \
|
|
--standalone \
|
|
--include-data-dir=resources=resources \
|
|
--linux-onefile-icon=pypvz.png \
|
|
--static-libpython=no \
|
|
--remove-output \
|
|
-o pypvz-with-python${{ matrix.python_version }}-linux-x86_64.bin \
|
|
pypvz.py
|
|
|
|
- name: Release the version built by nuitka
|
|
uses: ncipollo/release-action@v1
|
|
with:
|
|
allowUpdates: true
|
|
tag: Dev
|
|
artifacts: ./pypvz*-x86_64.*
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|