summaryrefslogtreecommitdiff
path: root/.github
diff options
context:
space:
mode:
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/build.yml101
1 files changed, 99 insertions, 2 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 4ae9c6f7..7e5bf341 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,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: