diff options
Diffstat (limited to '.github/workflows')
| -rwxr-xr-x | .github/workflows/build.yml | 268 |
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: |
