Add lmde6 32bit build (#3297) (#3298)

pull/3311/head dev-build-kaalleen-jump-to-stroke-transform
Benson Muite 2024-11-26 19:32:06 +03:00 zatwierdzone przez GitHub
rodzic fd1c72ea02
commit df3e412e9b
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: B5690EEEBB952194
4 zmienionych plików z 130 dodań i 3 usunięć

Wyświetl plik

@ -59,7 +59,7 @@ jobs:
# for networkx
python -m pip install pandas
python -m pip install pyarrow
python -m pip install pyinstaller
# scipy gives us a ELF error when stripped
@ -84,6 +84,98 @@ jobs:
with:
name: inkstitch-linux
path: artifacts
linux32:
# Node required for actions, install follows
# https://github.com/actions/upload-artifact/issues/616
runs-on: ubuntu-latest
container:
image: linuxmintd/lmde6-i386
volumes:
- ${{ github.workspace }}:/__e/node20
steps:
- name: Checkout repository
shell: bash
run: |
ls -lar /__e/node20 &&
apt-get update &&
apt-get install -y curl &&
curl -Lo /tmp/node.tar.gz https://unofficial-builds.nodejs.org/download/release/v20.17.0/node-v20.17.0-linux-x86.tar.gz &&
cd /__e/node20 &&
tar -x --strip-components=1 -f /tmp/node.tar.gz
- uses: actions/checkout@v4
with:
submodules: recursive
# Permissions problem that prevents caching
# https://github.com/actions/setup-python/issues/816
- name: Change ownership of /github/home
run: sudo chown -R $(whoami) /github/home
- name: Replace `node` with an i386 version
shell: bash
run: |
ls -lar /__e/node20 &&
curl -Lo /tmp/node.tar.gz https://unofficial-builds.nodejs.org/download/release/v20.17.0/node-v20.17.0-linux-x86.tar.gz &&
cd /__e/node20 &&
tar -x --strip-components=1 -f /tmp/node.tar.gz
- uses: actions/cache@v4
id: build-venv-cache
with:
path: virtualenv
key: ${{ runner.os }}-latest-venv-${{ hashFiles('**/bin/build-linux32-venv') }}
restore-keys: |
${{ runner.os }}-latest-venv-
- name: install os dependencies
shell: bash
run: |
apt-get install -y python3-dev python3-pip pipx ruby-full
gem install fpm
apt-get install -y python3-wheel
apt-get install -y gettext
# for wxPython
apt-get install -y libnotify4
apt-get install -y glib-networking libsdl2-dev libsdl2-2.0-0
# for PyGObject
apt-get install -y libgirepository1.0-dev libcairo2-dev
# for shapely
apt-get install -y build-essential libgtk-3-dev libgeos-dev cmake
apt-get install -y gcc g++ gfortran libopenblas-dev liblapack-dev
# for signing rpm
apt-get install -y rpm
- name: install/build python dependencies
if: steps.build-venv-cache.outputs.cache-hit != 'true'
shell: bash
run: |
bash bin/build-linux32-venv
- name: test
shell: bash
run: |
source virtualenv/bin/activate
echo "${{ env.pythonLocation }}\bin" >> $GITHUB_PATH
pytest
deactivate
- name: Package distributable
shell: bash
run: |
source virtualenv/bin/activate
make dist
deactivate
env:
BUILD: linux32
INKSTITCH_GPG_KEY: ${{ secrets.INKSTITCH_GPG_KEY }}
- name: Upload artifact
shell: bash
run: |
ls -lar /__e/node20 &&
curl -Lo /tmp/node.tar.gz https://unofficial-builds.nodejs.org/download/release/v20.17.0/node-v20.17.0-linux-x86.tar.gz &&
cd /__e/node20 &&
tar -x --strip-components=1 -f /tmp/node.tar.gz
- uses: actions/upload-artifact@v4
with:
name: inkstitch-linux32
path: artifacts
windows32:
runs-on: windows-2019
steps:
@ -353,7 +445,7 @@ jobs:
release:
runs-on: ubuntu-latest
needs: [linux, windows32, windows64, macx86, macarm64]
needs: [linux32, linux, windows32, windows64, macx86, macarm64]
if: always()
steps:
- name: determine release info
@ -376,6 +468,11 @@ jobs:
with:
name: 'inkstitch-linux'
path: 'artifacts/'
- name: download linux32
uses: actions/download-artifact@v4
with:
name: 'inkstitch-linux32'
path: 'artifacts/'
- name: download windows32
uses: actions/download-artifact@v4
with:

Wyświetl plik

@ -104,7 +104,7 @@ if [ "$BUILD" = "windows" ]; then
fi
fi
if [ "$BUILD" = "linux" ]; then
if [ "$BUILD" = "linux" ] || [ "$BUILD" = "linux32" ]; then
if [[ "$VERSION" =~ ^v[0-9][.0-9]+$ ]]; then
VERSION=${VERSION#v}
else

Wyświetl plik

@ -0,0 +1,25 @@
#!/usr/bin/env bash
set -e
uname -a
python3 --version
python3 -m pip --version
python3 -m pip debug
python3 -m venv virtualenv
source virtualenv/bin/activate
virtualenv/bin/pip debug
virtualenv/bin/pip install pycairo
virtualenv/bin/pip install PyGObject
virtualenv/bin/pip install wxPython
virtualenv/bin/pip install -r requirements.txt
# for networkx
virtualenv/bin/pip install pandas
virtualenv/bin/pip install pyinstaller
# scipy gives us an ELF error when stripped
virtualenv/bin/pip uninstall --yes scipy
virtualenv/bin/pip install scipy --no-binary scipy
deactivate

Wyświetl plik

@ -31,6 +31,11 @@ if [ "$BUILD" = "linux" ]; then
pyinstaller_args+="--add-binary /lib/x86_64-linux-gnu/libnsl.so.1:. "
fi
if [ "$BUILD" = "linux32" ]; then
pyinstaller_args+="--hidden-import gi.repository.Gtk "
pyinstaller_args+="--add-binary /lib/i386-linux-gnu/libcrypt.so.1:. "
pyinstaller_args+="--add-binary /lib/i386-linux-gnu/libnsl.so.1:. "
fi
if [ "$BUILD" = "windows" ]; then
if [[ "$VERSION" =~ ^v[0-9][.0-9]+$ ]]; then