From a0ff8f5c23bc39b7959d3f1471706c7cbc812521 Mon Sep 17 00:00:00 2001 From: Benson Muite Date: Thu, 17 Oct 2024 21:41:20 +0300 Subject: [PATCH] Add lmde6 32bit build i386 hack Setup Node on each ste From https://github.com/actions/upload-artifact/issues/616 --- .github/workflows/build.yml | 114 +++++++++++++++++++++++++++++++++++- 1 file changed, 112 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4ae9c6f71..cc47b30e1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -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,111 @@ jobs: with: name: inkstitch-linux path: artifacts + lmde6-32: + # 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 + - name: Replace `node` with an i386 version + 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 + - name: install dependencies and build + shell: bash + run: | + apt-get update + 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 + + 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 a ELF error when stripped + virtualenv/bin/pip uninstall --yes scipy + virtualenv/bin/pip install scipy --no-binary scipy + + echo "${{ env.pythonLocation }}\bin" >> $GITHUB_PATH + deactivate + - name: test + shell: bash + run: | + source virtualenv/bin/activate + pytest + deactivate + - name: Package distributable + shell: bash + run: | + source virtualenv/bin/activate + make dist + deactivate + env: + BUILD: linux + INKSTITCH_GPG_KEY: ${{ secrets.INKSTITCH_GPG_KEY }} + - name: Upload artifact + 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/upload-artifact@v4 + with: + name: inkstitch-lmde6-32 + path: artifacts windows32: runs-on: windows-2019 steps: @@ -353,7 +458,7 @@ jobs: release: runs-on: ubuntu-latest - needs: [linux, windows32, windows64, macx86, macarm64] + needs: [lmde6-32, linux, windows32, windows64, macx86, macarm64] if: always() steps: - name: determine release info @@ -376,6 +481,11 @@ jobs: with: name: 'inkstitch-linux' path: 'artifacts/' + - name: download linux32 apt + uses: actions/download-artifact@v4 + with: + name: 'inkstitch-lmde6-32' + path: 'artifacts/' - name: download windows32 uses: actions/download-artifact@v4 with: