summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2019-10-16 11:31:29 -0700
committerGravatar Dirk Hohndel <dirk@hohndel.org>2019-10-18 20:46:01 -0700
commitf099b22820f09ef04395e46d822b0fe2cbcfeb8d (patch)
tree4c4d9ee830e7518bc1dd5951a3c315d23aa988f6
parentef3d67be081545da4cf3c28497e0e96b3b1c350d (diff)
downloadsubsurface-f099b22820f09ef04395e46d822b0fe2cbcfeb8d.tar.gz
GitHub Actions: build Windows binaries
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r--.github/workflows/windows-in-container-build.sh30
-rw-r--r--.github/workflows/windows.yml64
2 files changed, 94 insertions, 0 deletions
diff --git a/.github/workflows/windows-in-container-build.sh b/.github/workflows/windows-in-container-build.sh
new file mode 100644
index 000000000..1993f98bc
--- /dev/null
+++ b/.github/workflows/windows-in-container-build.sh
@@ -0,0 +1,30 @@
+#!/bin/bash
+# this gets executed inside the container when building a Windows
+# installer on Travis
+#
+# working directory is assumed to be the directory including all the
+# source directories (subsurface, googlemaps, grantlee, etc)
+# in order to be compatible with the assumed layout in the MXE script, we
+# need to create the secondary build directory
+
+set -x
+set -e
+
+mkdir -p win32
+cd win32
+
+# build Subsurface and then smtk2ssrf
+export MXEBUILDTYPE=i686-w64-mingw32.shared
+bash -ex ../subsurface/packaging/windows/mxe-based-build.sh installer
+
+# the strange two step move is in order to get predictable names to use
+# in the publish step of the GitHub Action
+mv subsurface/subsurface.exe* ${GITHUB_WORKSPACE}/
+mv subsurface/subsurface-*.exe ${GITHUB_WORKSPACE}/subsurface-installer.exe
+
+bash -ex ../subsurface/packaging/windows/smtk2ssrf-mxe-build.sh -a -i
+
+# the strange two step move is in order to get predictable names to use
+# in the publish step of the GitHub Action
+mv smtk-import/smtk2ssrf.exe ${GITHUB_WORKSPACE}/
+mv smtk-import/smtk2ssrf*.exe ${GITHUB_WORKSPACE}/smtk2ssrf-installer.exe
diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml
new file mode 100644
index 000000000..bb81e5b28
--- /dev/null
+++ b/.github/workflows/windows.yml
@@ -0,0 +1,64 @@
+name: Windows
+on: push
+
+jobs:
+ buildInContainer:
+ runs-on: ubuntu-latest
+ container:
+ image: docker://dirkhh/mxe-build-container:0.9
+
+ steps:
+ - name: checkout sources
+ run: |
+ cd /win
+ git clone git://github.com/${GITHUB_REPOSITORY}
+ cd subsurface
+ git checkout ${GITHUB_SHA}
+ git submodule init
+ git submodule update
+
+ - name: get other dependencies
+ run: |
+ cd /win
+ apt-get install -y ca-certificates libtool
+ bash subsurface/scripts/get-dep-lib.sh single . libzip
+ bash subsurface/scripts/get-dep-lib.sh single . hidapi
+ bash subsurface/scripts/get-dep-lib.sh single . googlemaps
+ bash subsurface/scripts/get-dep-lib.sh single . grantlee
+ bash subsurface/scripts/get-dep-lib.sh single . mdbtools
+
+ - name: run build
+ run: |
+ cd /win
+ bash -x subsurface/.github/workflows/windows-in-container-build.sh 2>&1 | tee build.log
+ grep "Built target installer" build.log
+
+ - name: publish Subsurface installer
+ uses: actions/upload-artifact@v1
+ with:
+ name: subsurface-${{github.sha}}-installer.exe
+ path: ./subsurface-installer.exe # /${GITHUB_WORKSPACE}/ in the container is '.' here
+
+ - name: publish Subsurface binary
+ uses: actions/upload-artifact@v1
+ with:
+ name: subsurface-${{github.sha}}.exe
+ path: ./subsurface.exe # /${GITHUB_WORKSPACE}/ in the container is '.' here
+
+ - name: publish Subsurface debug binary
+ uses: actions/upload-artifact@v1
+ with:
+ name: subsurface-${{github.sha}}.exe.debug
+ path: ./subsurface.exe.debug # /${GITHUB_WORKSPACE}/ in the container is '.' here
+
+ - name: publish smtk2ssrf installer
+ uses: actions/upload-artifact@v1
+ with:
+ name: smtk2ssrf-${{github.sha}}-installer.exe
+ path: ./smtk2ssrf-installer.exe # /${GITHUB_WORKSPACE}/ in the container is '.' here
+
+ - name: publish Subsurface installer
+ uses: actions/upload-artifact@v1
+ with:
+ name: smtk2ssrf-${{github.sha}}.exe
+ path: ./subsurface.exe # /${GITHUB_WORKSPACE}/ in the container is '.' here