From bf74e7b2cff6f76882815ea76c981b7c37c35cb9 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 | 120 ++++++++++++++++++++++++++++++++++-- 1 file changed, 115 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4ae9c6f71..b6993f032 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,9 +1,7 @@ name: Build on: - push: - branches-ignore: - - master - - main + pull_request: + branches: [ main ] tags: - "v*" jobs: @@ -84,6 +82,118 @@ jobs: with: name: inkstitch-linux path: artifacts + lmde6-32: + runs-on: ubuntu-latest + container: + image: linuxmintd/lmde6-i386 + volumes: + - ${{ github.workspace }}:/__e/node20 + steps: + - name: Try to 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 + - uses: actions/checkout@v4 + with: + submodules: recursive + - name: Try to 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 + - uses: actions/cache@v4 + id: geos-build-cache + with: + path: geos/build + key: ${{ runner.os }}-6-i386-geos-build-${{ hashFiles('**/bin/build-linux') }} + restore-keys: | + ${{ runner.os }}-6-i386-geos-build- + - name: Try to 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 + shell: bash + run: | + apt-get update + apt-get install -y python3 python3-pip pipx ruby-full + gem install fpm + python3 -m pip install --upgrade pip + python3 -m pip install 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 + + uname -a + python3 --version + python3 -m pip --version + python3 -m pip debug + + python3 -m pip install pycairo + python3 -m pip install PyGObject + + python3 -m pip install wxPython + python3 -m pip install -r requirements.txt + # for networkx + python3 -m pip install pandas + python3 -m pip install pyarrow + + python3 -m pip install pyinstaller + + # scipy gives us a ELF error when stripped + apt-get install -y gcc g++ gfortran python3-dev libopenblas-dev liblapack-dev + python3 -m pip uninstall --yes scipy + python3 -m pip install scipy --no-binary scipy + + echo "${{ env.pythonLocation }}\bin" >> $GITHUB_PATH + - shell: bash + run: | + bin/build-linux + - shell: bash + run: | + pytest + - shell: bash + run: | + make dist + env: + BUILD: linux + INKSTITCH_GPG_KEY: ${{ secrets.INKSTITCH_GPG_KEY }} + - name: Try to 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 + - uses: actions/upload-artifact@v4 + with: + name: inkstitch-lmde6-32 + path: artifacts windows32: runs-on: windows-2019 steps: @@ -353,7 +463,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