Commit 5f922fbb authored by Ben Gamari's avatar Ben Gamari 🐢

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.
parent 7d9812e8
# 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
......@@ -18,24 +18,11 @@ deploy: off
install:
- cmd: |
SET "PATH=C:\%MSYS2_DIR%\%MSYSTEM%\bin;C:\%MSYS2_DIR%\usr\bin;%PATH%"
bash -lc "pacman --noconfirm -Syuu"
bash -lc "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"
bash -lc "cd $APPVEYOR_BUILD_FOLDER; git config remote.origin.url git://github.com/ghc/ghc.git"
bash -lc "cd $APPVEYOR_BUILD_FOLDER; git config --global url.\"git://github.com/ghc/packages-\".insteadOf git://github.com/ghc/packages/"
bash -lc "cd $APPVEYOR_BUILD_FOLDER; git submodule init"
bash -lc "cd $APPVEYOR_BUILD_FOLDER; git submodule --quiet update --recursive"
bash -lc "curl -L 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"
bash -lc "mkdir -p /usr/local/bin"
bash -lc "curl -L 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"
bash -lc "cabal update"
bash -lc "cabal install -j --prefix=/usr/local alex happy"
bash .appveyor.sh prepare
build_script:
- bash -lc "cd $APPVEYOR_BUILD_FOLDER; ./boot"
- bash -lc "cd $APPVEYOR_BUILD_FOLDER; ./configure --enable-tarballs-autodownload"
- bash -lc "cd $APPVEYOR_BUILD_FOLDER; make -j2"
- bash -lc "cd $APPVEYOR_BUILD_FOLDER; make binary_dist"
bash -lc "cd $APPVEYOR_BUILD_FOLDER; 7z a ghc-windows.zip *.tar.xz"
- bash .appveyor.sh build
- bash .appveyor.sh test
artifacts:
- path: C:\projects\ghc\ghc-windows.zip
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment