summaryrefslogtreecommitdiff
path: root/.github/workflows/build.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/build.yml')
-rwxr-xr-x.github/workflows/build.yml268
1 files changed, 25 insertions, 243 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index a28ce665..f86b85cf 100755
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -7,95 +7,15 @@ on:
tags:
- "v*"
jobs:
- linux64-old:
- runs-on: ubuntu-20.04
+ linux64:
+ runs-on: ubuntu-22.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==3.50.0
-
- python -m pip install https://extras.wxpython.org/wxPython4/extras/linux/gtk3/ubuntu-20.04/wxPython-4.2.2-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
-
- echo "${{ env.pythonLocation }}\bin" >> $GITHUB_PATH
- - shell: bash
- run: |
- bin/build-linux
- - name: Tests
- shell: bash
- run: |
- pytest
- - name: Mypy Type Checking
- shell: bash
- run: |
- python -m pip install mypy
- python -m mypy --output json | python .github/mypy-github-formatter
- continue-on-error: true
- - shell: bash
- run: |
- make dist
- env:
- BUILD: linux-old
- INKSTITCH_GPG_KEY: ${{ secrets.INKSTITCH_GPG_KEY }}
- - uses: actions/upload-artifact@v4
- with:
- name: inkstitch-linux64-old
- path: artifacts
-
- linux64-new:
- runs-on: ubuntu-24.04
- steps:
- - uses: actions/checkout@v4
- with:
- submodules: recursive
- - uses: actions/setup-python@v5
- with:
- python-version: '3.12.x'
+ python-version: '3.11.x'
cache: 'pip'
- name: install dependencies
shell: bash
@@ -115,10 +35,10 @@ jobs:
sudo apt install libgirepository1.0-dev libcairo2-dev
# for shapely
- sudo apt install build-essential libgtk-3-dev libgeos-dev cmake
+ sudo apt install build-essential libgtk-3-dev cmake
- # for sigining
- sudo apt install rpm
+ # for numpy
+ sudo apt install gfortran libopenblas-dev liblapack-dev pkg-config
uname -a
python --version
@@ -127,8 +47,9 @@ jobs:
python -m pip install pycairo
python -m pip install PyGObject==3.50.0
+ python -m pip install numpy --no-binary numpy
- python -m pip install https://extras.wxpython.org/wxPython4/extras/linux/gtk3/ubuntu-24.04/wxPython-4.2.2-cp312-cp312-linux_x86_64.whl
+ python -m pip install https://extras.wxpython.org/wxPython4/extras/linux/gtk3/ubuntu-22.04/wxPython-4.2.2-cp311-cp311-linux_x86_64.whl
python -m pip install -r requirements.txt
# for networkx
@@ -152,11 +73,11 @@ jobs:
run: |
make dist
env:
- BUILD: linux-new
+ BUILD: linux
INKSTITCH_GPG_KEY: ${{ secrets.INKSTITCH_GPG_KEY }}
- uses: actions/upload-artifact@v4
with:
- name: inkstitch-linux64-new
+ name: inkstitch-linux64
path: artifacts
linux32:
@@ -214,13 +135,17 @@ jobs:
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 build-essential libgtk-3-dev cmake
# for numpy
apt-get install -y libopenblas-dev liblapack-dev
# for signing rpm
apt-get install -y rpm
+ - name: build shapely
+ shell: bash
+ run: |
+ bin/build-linux
- name: install/build python dependencies
if: steps.build-venv-cache.outputs.cache-hit != 'true'
shell: bash
@@ -253,127 +178,6 @@ jobs:
with:
name: inkstitch-linux32
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/setup-git-for-windows-sdk@v1.10.0
- 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 version for older cpu compatibility
- python -m pip install numpy==1.23.1
- 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
- - name: Tests
- shell: bash
- run: |
- pytest
- - name: Mypy Type Checking
- shell: bash
- run: |
- python -m pip install mypy
- python -m mypy --output json | python .github/mypy-github-formatter
- continue-on-error: true
- - shell: bash
- run: |
- make dist
- env:
- BUILD: windows
- - name: upload-unsigned-exe
- id: upload-unsigned-exe
- uses: actions/upload-artifact@v4
- with:
- name: inkstitch-windows32-exe
- path: |
- dist/inkstitch/bin/inkstitch.exe
- - name: Set siging policy to release
- if: ${{ startsWith(github.ref, 'refs/tags/v*') }}
- shell: bash
- run: |
- echo release_policy="release-signing" >> $GITHUB_ENV
- - name: Set siging policy to test
- if: ${{ ! startsWith(github.ref, 'refs/tags/v*') }}
- shell: bash
- run: |
- echo release_policy="test-signing" >> $GITHUB_ENV
- - name: Sign-exe
- id: Sign-exe
- uses: signpath/github-action-submit-signing-request@v1.1
- with:
- api-token: '${{ secrets.SIGNPATH_API_TOKEN }}'
- organization-id: '6b880880-2af8-4cf3-a8e7-1b4977c593df'
- project-slug: 'inkstitch'
- signing-policy-slug: '${{ env.release_policy }}'
- github-artifact-id: '${{ steps.upload-unsigned-exe.outputs.artifact-id }}'
- wait-for-completion: true
- output-artifact-directory: 'signed-artifacts'
- - name: Copy signed exe to dist
- shell: bash
- run: |
- mv -f signed-artifacts/inkstitch.exe dist/inkstitch/bin/inkstitch.exe
- - shell: bash
- run: |
- bash bin/build-windows-installer
- env:
- BUILD: windows
- - name: upload-unsigned-installer
- id: upload-unsigned-installer
- uses: actions/upload-artifact@v4
- with:
- name: inkstitch-windows32-installer
- path: artifacts
- - name: Sign-installer
- id: Sign-installer
- uses: signpath/github-action-submit-signing-request@v1.1
- with:
- api-token: '${{ secrets.SIGNPATH_API_TOKEN }}'
- organization-id: '6b880880-2af8-4cf3-a8e7-1b4977c593df'
- project-slug: 'inkstitch'
- signing-policy-slug: '${{ env.release_policy }}'
- artifact-configuration-slug: 'windows-installer-config'
- github-artifact-id: '${{ steps.upload-unsigned-installer.outputs.artifact-id }}'
- wait-for-completion: true
- output-artifact-directory: 'signed-artifacts'
- - uses: actions/upload-artifact@v4
- with:
- name: inkstitch-windows32
- path: signed-artifacts
windows64:
runs-on: windows-2019
steps:
@@ -382,16 +186,9 @@ jobs:
submodules: recursive
- uses: actions/setup-python@v5
with:
- python-version: '3.8.x'
+ python-version: '3.11.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/setup-git-for-windows-sdk@v1.10.0
@@ -412,10 +209,6 @@ jobs:
python -m pip install pyinstaller
echo "${{ env.pythonLocation }}\bin" >> $GITHUB_PATH
- - name: install geos 64
- shell: cmd
- run: |
- bin\build-geos-win.cmd
- name: Tests
shell: bash
run: |
@@ -436,12 +229,8 @@ jobs:
shell: bash
run: |
echo release_policy="release-signing" >> $GITHUB_ENV
- - name: Set siging policy to test
- if: ${{ ! startsWith(github.ref, 'refs/tags/v*') }}
- shell: bash
- run: |
- echo release_policy="test-signing" >> $GITHUB_ENV
- name: upload-unsigned-exe
+ if: ${{ startsWith(github.ref, 'refs/tags/v*') }}
id: upload-unsigned-exe
uses: actions/upload-artifact@v4
with:
@@ -449,6 +238,7 @@ jobs:
path: |
dist/inkstitch/bin/inkstitch.exe
- name: Sign-exe
+ if: ${{ startsWith(github.ref, 'refs/tags/v*') }}
id: Sign-exe
uses: signpath/github-action-submit-signing-request@v1.1
with:
@@ -460,6 +250,7 @@ jobs:
wait-for-completion: true
output-artifact-directory: 'signed-artifacts'
- name: Copy signed exe to dist
+ if: ${{ startsWith(github.ref, 'refs/tags/v*') }}
shell: bash
run: |
mv -f signed-artifacts/inkstitch.exe dist/inkstitch/bin/inkstitch.exe
@@ -469,12 +260,14 @@ jobs:
env:
BUILD: windows
- name: upload-unsigned-installer
+ if: ${{ startsWith(github.ref, 'refs/tags/v*') }}
id: upload-unsigned-installer
uses: actions/upload-artifact@v4
with:
name: inkstitch-windows64-installer
path: artifacts
- name: Sign-installer
+ if: ${{ startsWith(github.ref, 'refs/tags/v*') }}
id: Sign-installer
uses: signpath/github-action-submit-signing-request@v1.1
with:
@@ -498,7 +291,7 @@ jobs:
submodules: recursive
- uses: actions/setup-python@v5
with:
- python-version: '3.9.x'
+ python-version: '3.11.x'
cache: 'pip'
- name: install dependencies
shell: bash
@@ -631,7 +424,7 @@ jobs:
release:
runs-on: ubuntu-latest
- needs: [linux32, linux64-old, linux64-new, windows32, windows64, macx86, macarm64]
+ needs: [linux32, linux64, windows64, macx86, macarm64]
if: always()
steps:
- name: determine release info
@@ -649,27 +442,16 @@ jobs:
echo "prerelease=true" >> $GITHUB_ENV
echo "title=development build of $branch" >> $GITHUB_ENV
fi
- - name: download linux64-old
- uses: actions/download-artifact@v4
- with:
- name: 'inkstitch-linux64-old'
- path: 'artifacts/'
- - name: download linux64-new
+ - name: download linux64
uses: actions/download-artifact@v4
with:
- name: 'inkstitch-linux64-new'
+ name: 'inkstitch-linux64'
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:
- name: 'inkstitch-windows32'
- path: 'signed-artifacts/'
- if: always()
- name: download windows64
uses: actions/download-artifact@v4
with: