From f099b22820f09ef04395e46d822b0fe2cbcfeb8d Mon Sep 17 00:00:00 2001 From: Dirk Hohndel Date: Wed, 16 Oct 2019 11:31:29 -0700 Subject: GitHub Actions: build Windows binaries Signed-off-by: Dirk Hohndel --- .github/workflows/windows-in-container-build.sh | 30 ++++++++++++ .github/workflows/windows.yml | 64 +++++++++++++++++++++++++ 2 files changed, 94 insertions(+) create mode 100644 .github/workflows/windows-in-container-build.sh create mode 100644 .github/workflows/windows.yml (limited to '.github') 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 -- cgit v1.2.3-70-g09d2