mirror of
https://github.com/actions/runner-images.git
synced 2025-12-13 04:37:09 +00:00
Inital commit.
This commit is contained in:
64
images/linux/scripts/installers/haskell.sh
Normal file
64
images/linux/scripts/installers/haskell.sh
Normal file
@@ -0,0 +1,64 @@
|
||||
#!/bin/bash
|
||||
################################################################################
|
||||
## File: haskell.sh
|
||||
## Desc: Installs Haskell
|
||||
################################################################################
|
||||
|
||||
# Source the helpers for use with the script
|
||||
source $HELPER_SCRIPTS/document.sh
|
||||
source $HELPER_SCRIPTS/apt.sh
|
||||
|
||||
# Install Herbert V. Riedel's PPA for managing multiple version of ghc on ubuntu.
|
||||
# https://launchpad.net/~hvr/+archive/ubuntu/ghc
|
||||
apt-get install -y software-properties-common
|
||||
add-apt-repository -y ppa:hvr/ghc
|
||||
apt-get update
|
||||
|
||||
# Install various versions of ghc and cabal
|
||||
apt-get install -y \
|
||||
ghc-8.0.2 \
|
||||
ghc-8.2.2 \
|
||||
ghc-8.4.4 \
|
||||
ghc-8.6.2 \
|
||||
ghc-8.6.3 \
|
||||
ghc-8.6.4 \
|
||||
ghc-8.6.5 \
|
||||
ghc-8.8.1 \
|
||||
cabal-install-2.0 \
|
||||
cabal-install-2.2 \
|
||||
cabal-install-2.4 \
|
||||
cabal-install-3.0
|
||||
|
||||
# Install haskell stack, pinned to v2.1.3
|
||||
curl -sSL https://raw.githubusercontent.com/commercialhaskell/stack/v2.1.3/etc/scripts/get-stack.sh | sh
|
||||
|
||||
# Run tests to determine that the software installed as expected
|
||||
echo "Testing to make sure that script performed as expected, and basic scenarios work"
|
||||
# Check all ghc versions
|
||||
for version in 8.0.2 8.2.2 8.4.4 8.6.2 8.6.3 8.6.4 8.6.5 8.8.1; do
|
||||
if ! command -v /opt/ghc/$version/bin/ghc; then
|
||||
echo "ghc $version was not installed"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
# Check all cabal versions
|
||||
for version in 2.0 2.2 2.4 3.0; do
|
||||
if ! command -v /opt/cabal/$version/bin/cabal; then
|
||||
echo "cabal $version was not installed"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
# Check stack
|
||||
if ! command -v stack; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Document what was added to the image
|
||||
echo "Lastly, documenting what we added to the metadata file"
|
||||
for version in 2.0 2.2 2.4 3.0; do
|
||||
DocumentInstalledItem "Haskell Cabal ($(/opt/cabal/$version/bin/cabal --version))"
|
||||
done
|
||||
for version in 8.0.2 8.2.2 8.4.4 8.6.2 8.6.3 8.6.4 8.6.5 8.8.1; do
|
||||
DocumentInstalledItem "GHC ($(/opt/ghc/$version/bin/ghc --version))"
|
||||
done
|
||||
DocumentInstalledItem "Haskell Stack ($(stack --version))"
|
||||
Reference in New Issue
Block a user