Add lmde6 32bit build #16
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build | |
on: | |
pull_request: | |
branches: [ main ] | |
tags: | |
- "v*" | |
jobs: | |
linux: | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.9.x' | |
cache: 'pip' | |
- uses: actions/cache@v4 | |
id: geos-build-cache | |
with: | |
path: geos/build | |
key: ${{ runner.os }}-20.04-geos-build-${{ hashFiles('**/bin/build-linux') }} | |
restore-keys: | | |
${{ runner.os }}-20.04-geos-build- | |
- name: install dependencies | |
shell: bash | |
run: | | |
sudo apt-get update | |
sudo gem install fpm | |
python -m pip install --upgrade pip | |
python -m pip install wheel | |
sudo apt-get install gettext | |
# for wxPython | |
sudo apt install libnotify4 | |
sudo apt install glib-networking libsdl2-dev libsdl2-2.0-0 | |
# for PyGObject | |
sudo apt install libgirepository1.0-dev libcairo2-dev | |
# for shapely | |
sudo apt install build-essential libgtk-3-dev | |
uname -a | |
python --version | |
python -m pip --version | |
python -m pip debug | |
python -m pip install pycairo | |
python -m pip install PyGObject | |
python -m pip install https://extras.wxpython.org/wxPython4/extras/linux/gtk3/ubuntu-20.04/wxPython-4.2.1-cp39-cp39-linux_x86_64.whl | |
python -m pip install -r requirements.txt | |
# 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 | |
sudo apt-get install gcc g++ gfortran python3-dev libopenblas-dev liblapack-dev | |
python -m pip uninstall --yes scipy | |
python -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 }} | |
- uses: actions/upload-artifact@v4 | |
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 | |
python -m pip install --upgrade pip | |
python -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: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.8.x' | |
architecture: 'x86' | |
cache: 'pip' | |
- uses: actions/cache@v4 | |
id: geos-build-cache | |
with: | |
path: geos | |
key: win32-geos-build-${{ hashFiles('**/bin/build-geos-win.cmd') }} | |
restore-keys: | | |
win32-geos-build- | |
- uses: microsoft/setup-msbuild@v2 | |
- name: Setup Git for Windows SDK | |
uses: git-for-windows/[email protected] | |
with: | |
flavor: build-installers | |
- name: install dependencies | |
shell: bash | |
run: | | |
git config --system core.longpaths true | |
python -m pip install --upgrade pip | |
python -m pip install wheel | |
# inkex has pillow as a requirement and defaults to the latest release. | |
# for windows we need to pin to the latest possible version for 32 bit | |
python -m pip install pillow==9.5.0 | |
# Numpy and Scipy version for older cpu compatibility | |
python -m pip install numpy==1.23.1 | |
python -m pip install scipy==1.9.0 | |
pip install wxPython | |
python -m pip install -r requirements.txt | |
# for networkx | |
python -m pip install pandas | |
python -m pip install pyinstaller | |
echo "${{ env.pythonLocation }}\bin" >> $GITHUB_PATH | |
- name: install geos 32 | |
shell: cmd | |
run: | | |
SET BUILD32="1" | |
bin\build-geos-win.cmd | |
- shell: bash | |
run: | | |
pytest | |
- shell: bash | |
run: | | |
make dist | |
env: | |
BUILD: windows | |
- uses: dlemstra/code-sign-action@v1 | |
with: | |
certificate: '${{ secrets.INKSTITCH_CODE_SIGNING_CERTIFICATE }}' | |
folder: 'dist' | |
recursive: true | |
- shell: bash | |
run: | | |
bash bin/build-windows-installer | |
env: | |
BUILD: windows | |
- uses: dlemstra/code-sign-action@v1 | |
with: | |
certificate: '${{ secrets.INKSTITCH_CODE_SIGNING_CERTIFICATE }}' | |
folder: 'artifacts' | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: inkstitch-windows32 | |
path: artifacts | |
windows64: | |
runs-on: windows-2019 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.8.x' | |
architecture: 'x64' | |
cache: 'pip' | |
- uses: actions/cache@v4 | |
id: geos-build-cache | |
with: | |
path: geos | |
key: win64-geos-build-${{ hashFiles('**/bin/build-geos-win.cmd') }} | |
restore-keys: | | |
win64-geos-build- | |
- uses: microsoft/setup-msbuild@v2 | |
- name: Setup Git for Windows SDK | |
uses: git-for-windows/[email protected] | |
with: | |
flavor: build-installers | |
- name: install dependencies | |
shell: bash | |
run: | | |
git config --system core.longpaths true | |
python -m pip install --upgrade pip | |
python -m pip install wheel | |
pip install wxPython | |
python -m pip install -r requirements.txt | |
# for networkx | |
python -m pip install pandas | |
python -m pip install pyarrow | |
python -m pip install pyinstaller | |
echo "${{ env.pythonLocation }}\bin" >> $GITHUB_PATH | |
- name: install geos 64 | |
shell: cmd | |
run: | | |
bin\build-geos-win.cmd | |
- shell: bash | |
run: | | |
pytest | |
- shell: bash | |
run: | | |
make dist | |
env: | |
BUILD: windows | |
- uses: dlemstra/code-sign-action@v1 | |
with: | |
certificate: '${{ secrets.INKSTITCH_CODE_SIGNING_CERTIFICATE }}' | |
folder: 'dist' | |
recursive: true | |
- shell: bash | |
run: | | |
bash bin/build-windows-installer | |
env: | |
BUILD: windows | |
- uses: dlemstra/code-sign-action@v1 | |
with: | |
certificate: '${{ secrets.INKSTITCH_CODE_SIGNING_CERTIFICATE }}' | |
folder: 'artifacts' | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: inkstitch-windows64 | |
path: artifacts | |
macx86: | |
runs-on: macos-12 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.9.x' | |
cache: 'pip' | |
- name: install dependencies | |
shell: bash | |
run: | | |
brew update | |
brew install gtk+3 pkg-config gobject-introspection geos libffi gettext jq gnu-getopt || true | |
export LDFLAGS="-L/usr/local/opt/libffi/lib" | |
export PKG_CONFIG_PATH="/usr/local/opt/libffi/lib/pkgconfig" | |
# for msgfmt | |
echo "/usr/local/opt/gettext/bin" >> $GITHUB_PATH | |
echo "GI_TYPELIB_PATH=/usr/local/lib/girepository-1.0/" >> $GITHUB_ENV | |
pip install --upgrade pip | |
pip --version | |
pip install wheel | |
pip install PyGObject | |
pip install wxPython | |
pip install -r requirements.txt | |
# for networkx | |
pip install pandas | |
pip install pyarrow | |
# remove and build shapely with brew geos version | |
pip uninstall -y shapely | |
pip cache remove shapely | |
pip install -v shapely --no-binary shapely | |
pip install pyinstaller | |
echo "${{ env.pythonLocation }}/bin" >> $GITHUB_PATH | |
- shell: bash | |
run: | | |
pytest | |
- shell: bash | |
run: | | |
make dist | |
env: | |
BUILD: osx | |
MACOS_CERTIFICATE: ${{ secrets.INKSTITCH_APPLE_DEVELOPER_CERTIFICATE }} | |
MACOS_CERTIFICATE_PWD: ${{ secrets.INKSTITCH_APPLE_DEVELOPER_CERTIFICATE_PASSWORD }} | |
KEYCHAIN_PWD: ${{ secrets.KEYCHAIN_PASSWORD }} | |
INSTALLER_CERTIFICATE: ${{ secrets.INKSTITCH_APPLE_INSTALLER_CERTIFICATE }} | |
INSTALLER_PWD: ${{ secrets.INKSTITCH_APPLE_INSTALLER_CERTIFICATE_PASSWORD }} | |
NOTARY_ACCOUNT: ${{ secrets.INKSTITCH_NOTARIZE_AC }} | |
NOTARY_PASSWORD: ${{ secrets.INKSTITCH_NOTARIZE_PASS }} | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: inkstitch-mac-x86 | |
path: artifacts | |
macarm64: | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.11.x' | |
cache: 'pip' | |
- name: install dependencies | |
shell: bash | |
run: | | |
brew update | |
brew install gtk+3 pkg-config gobject-introspection geos libffi gettext jq gnu-getopt || true | |
export LDFLAGS="-L/opt/homebrew/opt/libffi/lib" | |
export PKG_CONFIG_PATH="/opt/homebrew/opt/libffi/lib/pkgconfig" | |
# for msgfmt | |
echo "/opt/homebrew/opt/gettext/bin" >> $GITHUB_PATH | |
echo "GI_TYPELIB_PATH=/opt/homebrew/lib/girepository-1.0/" >> $GITHUB_ENV | |
pip install --upgrade pip | |
pip --version | |
pip install wheel | |
pip install PyGObject | |
pip install wxPython | |
pip install -r requirements.txt | |
# for networkx | |
pip install pandas | |
pip install pyarrow | |
# remove and build shapely with brew geos version | |
pip uninstall -y shapely | |
pip cache remove shapely | |
pip install -v shapely --no-binary shapely | |
pip install pyinstaller | |
echo "${{ env.pythonLocation }}/bin" >> $GITHUB_PATH | |
- shell: bash | |
run: | | |
pytest | |
- shell: bash | |
run: | | |
make dist | |
env: | |
BUILD: osx | |
MACOS_CERTIFICATE: ${{ secrets.INKSTITCH_APPLE_DEVELOPER_CERTIFICATE }} | |
MACOS_CERTIFICATE_PWD: ${{ secrets.INKSTITCH_APPLE_DEVELOPER_CERTIFICATE_PASSWORD }} | |
KEYCHAIN_PWD: ${{ secrets.KEYCHAIN_PASSWORD }} | |
INSTALLER_CERTIFICATE: ${{ secrets.INKSTITCH_APPLE_INSTALLER_CERTIFICATE }} | |
INSTALLER_PWD: ${{ secrets.INKSTITCH_APPLE_INSTALLER_CERTIFICATE_PASSWORD }} | |
NOTARY_ACCOUNT: ${{ secrets.INKSTITCH_NOTARIZE_AC }} | |
NOTARY_PASSWORD: ${{ secrets.INKSTITCH_NOTARIZE_PASS }} | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: inkstitch-mac-arm64 | |
path: artifacts | |
release: | |
runs-on: ubuntu-latest | |
needs: [lmde6-32, linux, windows32, windows64, macx86, macarm64] | |
if: always() | |
steps: | |
- name: determine release info | |
shell: bash | |
run: | | |
if [[ "${GITHUB_REF}" =~ ^refs/tags/v[0-9.]+$ ]]; then | |
tag="${GITHUB_REF#refs/tags/}" | |
echo "release_tag=${tag}" >> $GITHUB_ENV | |
echo "prerelease=false" >> $GITHUB_ENV | |
echo "title=${tag}" >> $GITHUB_ENV | |
else | |
branch="${GITHUB_REF#refs/heads/}" | |
tag="dev-build-$(echo $branch | tr / -)" | |
echo "release_tag=${tag}" >> $GITHUB_ENV | |
echo "prerelease=true" >> $GITHUB_ENV | |
echo "title=development build of $branch" >> $GITHUB_ENV | |
fi | |
- name: download linux | |
uses: actions/download-artifact@v4 | |
with: | |
name: 'inkstitch-linux' | |
path: 'artifacts/' | |
- name: download windows32 | |
uses: actions/download-artifact@v4 | |
with: | |
name: 'inkstitch-windows32' | |
path: 'artifacts/' | |
if: always() | |
- name: download windows64 | |
uses: actions/download-artifact@v4 | |
with: | |
name: 'inkstitch-windows64' | |
path: 'artifacts/' | |
if: always() | |
- name: download macx86 | |
uses: actions/download-artifact@v4 | |
with: | |
name: 'inkstitch-mac-x86' | |
path: 'artifacts/' | |
if: always() | |
- name: download macarm64 | |
uses: actions/download-artifact@v4 | |
with: | |
name: 'inkstitch-mac-arm64' | |
path: 'artifacts/' | |
if: always() | |
- name: create/update release | |
uses: softprops/action-gh-release@v2 | |
if: always() | |
with: | |
token: "${{secrets.GITHUB_TOKEN}}" | |
tag_name: "${{env.release_tag}}" | |
prerelease: "${{env.prerelease}}" | |
name: "${{env.title}}" | |
files: | | |
artifacts/*.exe | |
artifacts/*.pkg | |
artifacts/*.deb | |
artifacts/*.rpm | |
artifacts/*.tar.xz | |
artifacts/*.sh | |
artifacts/*.zip |