diff options
author | Dirk Hohndel <dirk@hohndel.org> | 2019-10-16 11:31:29 -0700 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2019-10-18 20:46:01 -0700 |
commit | f099b22820f09ef04395e46d822b0fe2cbcfeb8d (patch) | |
tree | 4c4d9ee830e7518bc1dd5951a3c315d23aa988f6 | |
parent | ef3d67be081545da4cf3c28497e0e96b3b1c350d (diff) | |
download | subsurface-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.sh | 30 | ||||
-rw-r--r-- | .github/workflows/windows.yml | 64 |
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 |