diff options
| author | Lex Neva <github.com@lexneva.name> | 2019-11-15 13:09:53 -0500 |
|---|---|---|
| committer | Lex Neva <github.com@lexneva.name> | 2020-01-29 01:29:49 -0500 |
| commit | 13fe706716a383e12b47c0458324580b6b12b84c (patch) | |
| tree | 7c7c19dfb5d9eb193c860b7a2c5ed8d18fc6605d | |
| parent | 9747e057a26bfd203282925827f3ae20f2675b94 (diff) | |
windows build github action
| -rw-r--r-- | .github/workflows/build.yml | 45 | ||||
| -rw-r--r-- | Makefile | 6 | ||||
| -rwxr-xr-x | bin/build-distribution-archives | 21 | ||||
| -rwxr-xr-x | bin/build-electron | 11 | ||||
| -rwxr-xr-x | bin/build-python | 2 |
5 files changed, 65 insertions, 20 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 00000000..5e65b8cb --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,45 @@ +name: Build +on: [push] +jobs: + windows: + runs-on: windows-latest + steps: + - uses: actions/checkout@v1 + with: + submodules: recursive + - uses: actions/setup-python@v1 + with: + python-version: '2.7.x' + architecture: 'x86' + - name: download dependencies + shell: bash + run: | + curl -sOL https://github.com/lexelby/inkstitch-build-objects/releases/download/v1.0.0/Shapely-1.6.3-cp27-cp27m-win32.whl + curl -sOL https://inkscape.org/en/gallery/item/12187/inkscape-0.92.3.tar.bz2 + - name: install dependencies + shell: bash + run: | + pip install Shapely-1.6.3-cp27-cp27m-win32.whl + pip install -r requirements.txt + pip install pyinstaller==3.3.1 + + tar -jxf inkscape-0.92.3.tar.bz2 + rm inkscape-0.92.3.tar.bz2 + mv inkscape-0.92.3 inkscape + + echo "::add-path::${{ env.pythonLocation }}\bin" + - name: fix geos + shell: bash + run: | + cd "${{ env.pythonLocation }}\Lib/site-packages/shapely/DLLs" + cp geos_c.dll geos.dll + - shell: bash + run: | + make dist + find . + env: + BUILD: windows + - uses: actions/upload-artifact@master + with: + name: inkstitch-windows + path: artifacts @@ -10,11 +10,7 @@ distclean: .PHONY: inx inx: locales mkdir -p inx - if [ "$$BUILD" = "windows" ]; then \ - wine c:\\Python\\python.exe bin/generate-inx-files; \ - else \ - bin/generate-inx-files; \ - fi + python bin/generate-inx-files; \ .PHONY: messages.po messages.po: diff --git a/bin/build-distribution-archives b/bin/build-distribution-archives index bbc61996..d1a30014 100755 --- a/bin/build-distribution-archives +++ b/bin/build-distribution-archives @@ -1,14 +1,16 @@ +#!/bin/bash + # TRAVIS_BRANCH is the branch name or the name of the tag. -VERSION="$(echo ${TRAVIS_BRANCH} | tr / -)" -OS="${TRAVIS_OS_NAME}" +VERSION="$(echo ${TRAVIS_BRANCH:-${GITHUB_REF}} | tr / -)" +OS="${TRAVIS_OS_NAME:-$(uname)}" ARCH="$(uname -m)" MACVERSION="${TRAVIS_OSX_IMAGE}" -if [ ${MACVERSION} = "xcode9.2" ]; then +if [ "${MACVERSION}" = "xcode9.2" ]; then MACVERSION="sierra" -elif [ ${MACVERSION} = "xcode9.4" ]; then +elif [ "${MACVERSION}" = "xcode9.4" ]; then MACVERSION="high_sierra" -elif [ ${MACVERSION} = "xcode10.2" ]; then +elif [ "${MACVERSION}" = "xcode10.2" ]; then MACVERSION="mojave" fi @@ -21,6 +23,8 @@ else cp -a electron/dist/*-unpacked dist/inkstitch/electron fi +mkdir artifacts + for d in inx/*; do lang=${d%.*} lang=${lang#*/} @@ -28,11 +32,12 @@ for d in inx/*; do cd dist if [ "$BUILD" = "windows" ]; then - zip -r ../inkstitch-${VERSION}-win32-${lang}.zip * + echo + python -m zipfile -c ../artifacts/inkstitch-${VERSION}-win32-${lang}.zip * elif [ "$BUILD" = "osx" ]; then - tar zcf ../inkstitch-${VERSION}-${OS}-${MACVERSION}-${ARCH}-$lang.tar.gz * + tar zcf ../artifacts/inkstitch-${VERSION}-${OS}-${MACVERSION}-${ARCH}-$lang.tar.gz * else - tar zcf ../inkstitch-${VERSION}-${OS}-${ARCH}-$lang.tar.gz * + tar zcf ../artifacts/inkstitch-${VERSION}-${OS}-${ARCH}-$lang.tar.gz * fi cd .. done diff --git a/bin/build-electron b/bin/build-electron index d8ce78b8..1b90b556 100755 --- a/bin/build-electron +++ b/bin/build-electron @@ -1,11 +1,10 @@ #!/bin/bash -if [ "$BUILD" = "windows" -o "$BUILD" = "linux" ]; then - if [ "$BUILD" = "windows" ]; then - args="-w --ia32" - else - args="-l --x64" - fi +if [ "$BUILD" = "windows" ]; then + cd electron + yarn --link-duplicates --pure-lockfile && yarn run dist -w --ia32 +elif [ "$BUILD" = "linux" ]; then + args="-l --x64" docker run --rm \ -e ELECTRON_CACHE=$HOME/.cache/electron \ diff --git a/bin/build-python b/bin/build-python index c740c782..7326e371 100755 --- a/bin/build-python +++ b/bin/build-python @@ -35,7 +35,7 @@ pyinstaller_args+="-p inkscape/share/extensions " pyinstaller_args+="--log-level DEBUG " if [ "$BUILD" = "windows" ]; then - wine c:\\Python\\scripts\\pyinstaller.exe $pyinstaller_args inkstitch.py + pyinstaller $pyinstaller_args inkstitch.py else # without the LD_LIBRARY_PATH, it seems that pyinstaller can't find all of # wxpython's shared libraries |
