summaryrefslogtreecommitdiff
path: root/.appveyor.sh
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2018-01-31 19:14:47 -0500
committerBen Gamari <ben@smart-cactus.org>2018-01-31 23:28:06 -0500
commit5f922fbbef56dd4f0133ffe07ab8f0ebcb58fbaf (patch)
tree8cf6b01c2a6053cea116698cfb5616459ccf6298 /.appveyor.sh
parent7d9812e8f4e8723c94a8ee9f7ba629ac9f1d4e71 (diff)
downloadhaskell-5f922fbbef56dd4f0133ffe07ab8f0ebcb58fbaf.tar.gz
appveyor: Refactor
Move build logic into a dedicated bash script, avoiding repetitive bash invocations. Furthermore, disable pacman update step as it breaks things in non-predictable ways.
Diffstat (limited to '.appveyor.sh')
-rw-r--r--.appveyor.sh50
1 files changed, 50 insertions, 0 deletions
diff --git a/.appveyor.sh b/.appveyor.sh
new file mode 100644
index 0000000000..436e54b17a
--- /dev/null
+++ b/.appveyor.sh
@@ -0,0 +1,50 @@
+# Configure the environment
+MSYSTEM=MINGW64
+source /etc/profile || true # a terrible, terrible workaround for msys2 brokenness
+
+# Don't set -e until after /etc/profile is sourced
+set -ex
+cd $APPVEYOR_BUILD_FOLDER
+
+case "$1" in
+ "prepare")
+ # Bring msys up-to-date
+ # However, we current don't do this: generally one must restart all
+ # msys2 processes when updating the msys2 runtime, which this may do. We can't
+ # easily do this and therefore do simply don't update.
+ #pacman --noconfirm -Syuu
+
+ # Install basic build dependencies
+ pacman --noconfirm -S --needed git tar bsdtar binutils autoconf make xz curl libtool automake python python2 p7zip patch mingw-w64-$(uname -m)-python3-sphinx mingw-w64-$(uname -m)-tools-git
+
+ # Prepare the tree
+ git config remote.origin.url git://github.com/ghc/ghc.git
+ git config --global url."git://github.com/ghc/packages-".insteadOf git://github.com/ghc/packages/
+ git submodule init
+ git submodule --quiet update --recursive
+
+ # Install build dependencies
+ wget -q -O - https://downloads.haskell.org/~ghc/8.2.1/ghc-8.2.1-x86_64-unknown-mingw32.tar.xz | tar -xJ -C /mingw64 --strip-components=1
+ mkdir -p /usr/local/bin
+ wget -q -O - https://www.haskell.org/cabal/release/cabal-install-1.24.0.0/cabal-install-1.24.0.0-x86_64-unknown-mingw32.zip | bsdtar -xzf- -C /usr/local/bin
+ cabal update
+ cabal install -j --prefix=/usr/local alex happy
+ ;;
+
+ "build")
+ # Build the compiler
+ ./boot
+ ./configure --enable-tarballs-autodownload
+ make -j2
+ ;;
+
+ "test")
+ make binary_dist
+ 7z a ghc-windows.zip *.tar.xz
+ ;;
+
+ *)
+ echo "$0: unknown mode $1"
+ exit 1
+ ;;
+esac