summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWill Thompson <will@willthompson.co.uk>2018-07-03 15:09:11 +0100
committerWill Thompson <will@willthompson.co.uk>2018-07-03 15:09:11 +0100
commit89bafbc61e726b0befcc3ef03e0ce432a53497a0 (patch)
tree16270926204aeb28785eeebd7979be0f5c4f5d55
parentcbd465603d84349e5ae56786eaba2b85bea40075 (diff)
Remove Travis-CI stuff
This has not been enabled, or worked, for years. Happily we may soon have GitLab CI working instead: https://gitlab.freedesktop.org/bustle/bustle/merge_requests/1
-rw-r--r--.travis.yml79
-rw-r--r--Makefile3
-rwxr-xr-xmake_travis_yml.hs228
3 files changed, 0 insertions, 310 deletions
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 8b3e518..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,79 +0,0 @@
-# This file has been generated -- see https://github.com/hvr/multi-ghc-travis
-language: c
-sudo: false
-
-cache:
- directories:
- - $HOME/.cabsnap
- - $HOME/.cabal/packages
-
-before_cache:
- - rm -fv $HOME/.cabal/packages/hackage.haskell.org/build-reports.log
- - rm -fv $HOME/.cabal/packages/hackage.haskell.org/00-index.tar
-
-matrix:
- include:
- - env: CABALVER=1.18 GHCVER=7.8.4
- compiler: ": #GHC 7.8.4"
- addons: {apt: {packages: [cabal-install-1.18,ghc-7.8.4,libpcap-dev,libgtk-3-dev,libcairo2-dev,happy-1.19.4,alex-3.1.3], sources: [hvr-ghc]}}
- - env: CABALVER=1.22 GHCVER=7.10.1
- compiler: ": #GHC 7.10.1"
- addons: {apt: {packages: [cabal-install-1.22,ghc-7.10.1,libpcap-dev,libgtk-3-dev,libcairo2-dev,happy-1.19.4,alex-3.1.3], sources: [hvr-ghc]}}
-
-before_install:
- - unset CC
- - export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:/opt/happy/1.19.4/bin:/opt/alex/3.1.3/bin:$PATH
-
-install:
- - cabal --version
- - echo "$(ghc --version) [$(ghc --print-project-git-commit-id 2> /dev/null || echo '?')]"
- - if [ -f $HOME/.cabal/packages/hackage.haskell.org/00-index.tar.gz ];
- then
- zcat $HOME/.cabal/packages/hackage.haskell.org/00-index.tar.gz >
- $HOME/.cabal/packages/hackage.haskell.org/00-index.tar;
- fi
- - travis_retry cabal update -v
- - sed -i 's/^jobs:/-- jobs:/' ${HOME}/.cabal/config
- - cabal install --only-dependencies --enable-tests --enable-benchmarks --flags='WithGtk2HsBuildTools' --dry -v > installplan.txt
- - sed -i -e '1,/^Resolving /d' installplan.txt; cat installplan.txt
-
-# check whether current requested install-plan matches cached package-db snapshot
- - if diff -u installplan.txt $HOME/.cabsnap/installplan.txt;
- then
- echo "cabal build-cache HIT";
- rm -rfv .ghc;
- cp -a $HOME/.cabsnap/ghc $HOME/.ghc;
- cp -a $HOME/.cabsnap/lib $HOME/.cabsnap/share $HOME/.cabsnap/bin $HOME/.cabal/;
- else
- echo "cabal build-cache MISS";
- rm -rf $HOME/.cabsnap;
- mkdir -p $HOME/.ghc $HOME/.cabal/lib $HOME/.cabal/share $HOME/.cabal/bin;
- travis_retry cabal install --only-dependencies --enable-tests --enable-benchmarks --flags='WithGtk2HsBuildTools';
- fi
-
-# snapshot package-db on cache miss
- - if [ ! -d $HOME/.cabsnap ];
- then
- echo "snapshotting package-db to build-cache";
- mkdir $HOME/.cabsnap;
- cp -a $HOME/.ghc $HOME/.cabsnap/ghc;
- cp -a $HOME/.cabal/lib $HOME/.cabal/share $HOME/.cabal/bin installplan.txt $HOME/.cabsnap/;
- fi
-
-# Here starts the actual work to be performed for the package under test;
-# any command which exits with a non-zero exit code causes the build to fail.
-script:
- - if [ -f configure.ac ]; then autoreconf -i; fi
- - cabal configure --enable-tests --enable-benchmarks -v2 # -v2 provides useful information for debugging
- - cabal build # this builds all libraries and executables (including tests/benchmarks)
- - ./dist/setup/setup test
- - cabal check
- - cabal sdist # tests that a source-distribution can be generated
-
-# Check that the resulting source distribution can be built & installed.
-# If there are no other `.tar.gz` files in `dist`, this can be even simpler:
-# `cabal install --force-reinstalls dist/*-*.tar.gz`
- - SRC_TGZ=$(cabal info . | awk '{print $2;exit}').tar.gz &&
- (cd dist && cabal install --force-reinstalls "$SRC_TGZ")
-
-# EOF
diff --git a/Makefile b/Makefile
index 51dc734..bd90eb4 100644
--- a/Makefile
+++ b/Makefile
@@ -116,6 +116,3 @@ maintainer-make-release: bustle.cabal dist/build/autogen/version.txt
git tag -s -m 'Bustle '`cat dist/build/autogen/version.txt` \
bustle-`cat dist/build/autogen/version.txt`
gpg --detach-sign --armor dist/bustle-`cat dist/build/autogen/version.txt`.tar.gz
-
-.travis.yml: bustle.cabal make_travis_yml.hs
- ./make_travis_yml.hs $< libpcap-dev libgtk-3-dev libcairo2-dev happy-1.19.4 alex-3.1.3 > $@
diff --git a/make_travis_yml.hs b/make_travis_yml.hs
deleted file mode 100755
index 551cbd5..0000000
--- a/make_travis_yml.hs
+++ /dev/null
@@ -1,228 +0,0 @@
-#!/usr/bin/env runghc
-
--- NB: This code deliberately avoids relying on non-standard packages
-
-import Control.Monad
-import Data.Maybe
-import Data.List
-import System.Environment
-import System.Exit
-import System.IO
-
-import Distribution.PackageDescription.Parse (readPackageDescription)
-import Distribution.PackageDescription (packageDescription, testedWith)
-import Distribution.Compiler (CompilerFlavor(..))
-import Distribution.Version
-import Distribution.Text
-
-putStrLnErr :: String -> IO ()
-putStrLnErr m = hPutStrLn stderr ("*ERROR* " ++ m) >> exitFailure
-
-putStrLnWarn :: String -> IO ()
-putStrLnWarn m = hPutStrLn stderr ("*WARNING* " ++ m)
-
-putStrLnInfo :: String -> IO ()
-putStrLnInfo m = hPutStrLn stderr ("*INFO* " ++ m)
-
-main :: IO ()
-main = do
- args <- getArgs
- case args of
- (cabfn:xpkgs) -> do genTravisFromCabalFile cabfn xpkgs
- _ -> putStrLnErr (unlines $ [ "expected .cabal file as command-line argument"
- , "Usage: make_travis_yml.hs <cabal-file> <extra-apt-packages...>"
- , ""
- , "Example: make_travis_yml.hs someProject.cabal alex-3.1.4 liblzma-dev > .travis.yml"
- ])
-
-genTravisFromCabalFile :: FilePath -> [String] -> IO ()
-genTravisFromCabalFile fn xpkgs = do
- gpd <- readPackageDescription maxBound fn
-
- let compilers = testedWith $ packageDescription $ gpd
-
- let unknownComps = nub [ c | (c,_) <- compilers, c /= GHC ]
- ghcVerConstrs = [ vc | (GHC,vc) <- compilers ]
- ghcVerConstrs' = simplifyVersionRange $ foldr unionVersionRanges noVersion ghcVerConstrs
-
- when (null compilers) $ do
- putStrLnErr "empty or missing 'tested-with:' definition in .cabal file"
-
- unless (null unknownComps) $ do
- putStrLnWarn $ "ignoring unsupported compilers mentioned in tested-with: " ++ show unknownComps
-
- when (null ghcVerConstrs) $ do
- putStrLnErr "'tested-with:' doesn't mention any 'GHC' version"
-
- when (isNoVersion ghcVerConstrs') $ do
- putStrLnErr "'tested-with:' describes an empty version range for 'GHC'"
-
- when (isAnyVersion ghcVerConstrs') $ do
- putStrLnErr "'tested-with:' allows /any/ 'GHC' version"
-
- let testedGhcVersions = filter (`withinRange` ghcVerConstrs') knownGhcVersions
-
- when (null testedGhcVersions) $ do
- putStrLnErr "no known GHC version is allowed by the 'tested-with' specification"
-
- let pathBits = concat [ [ "/opt/ghc/$GHCVER/bin", "/opt/cabal/$CABALVER/bin" ]
- , catMaybes (map pathForPackage xpkgs)
- , ["$PATH"]
- ]
-
- -- FIXME
- let flags = "WithGtk2HsBuildTools"
-
- putStrLnInfo $ "Generating Travis-CI config for testing for GHC versions: " ++ (unwords $ map disp' $ testedGhcVersions)
-
- ----------------------------------------------------------------------------
- -- travis.yml generation starts here
-
- putStrLn "# This file has been generated -- see https://github.com/hvr/multi-ghc-travis"
- putStrLn "language: c"
- putStrLn "sudo: false"
- putStrLn ""
- putStrLn "cache:"
- putStrLn " directories:"
- putStrLn " - $HOME/.cabsnap"
- putStrLn " - $HOME/.cabal/packages"
- putStrLn ""
- putStrLn "before_cache:"
- putStrLn " - rm -fv $HOME/.cabal/packages/hackage.haskell.org/build-reports.log"
- putStrLn " - rm -fv $HOME/.cabal/packages/hackage.haskell.org/00-index.tar"
- putStrLn ""
- putStrLn "matrix:"
- putStrLn " include:"
-
- forM_ testedGhcVersions $ \gv -> do
- let cvs = disp' (lookupCabVer gv)
- gvs = disp' gv
-
- xpkgs' = concatMap (',':) xpkgs
-
- putStrLn $ concat [ " - env: CABALVER=", cvs, " GHCVER=", gvs ]
- putStrLn $ concat [ " compiler: \": #GHC ", gvs, "\"" ]
- putStrLn $ concat [ " addons: {apt: {packages: [cabal-install-", cvs, ",ghc-", gvs, xpkgs'
- , "], sources: [hvr-ghc]}}" ]
- return ()
-
- let headGhcVers = filter isHead testedGhcVersions
-
- unless (null headGhcVers) $ do
- putStrLn ""
- putStrLn " allow_failures:"
-
- forM_ headGhcVers $ \gv -> do
- let cvs = disp' (lookupCabVer gv)
- gvs = disp' gv
- putStrLn $ concat [ " - env: CABALVER=", cvs, " GHCVER=", gvs ]
-
- putStrLn ""
- putStrLn "before_install:"
- putStrLn " - unset CC"
- putStrLn $ " - export PATH=" ++ intercalate ":" pathBits
-
- putStrLn ""
-
- putStr $ unlines
- [ "install:"
- , " - cabal --version"
- , " - echo \"$(ghc --version) [$(ghc --print-project-git-commit-id 2> /dev/null || echo '?')]\""
- , " - if [ -f $HOME/.cabal/packages/hackage.haskell.org/00-index.tar.gz ];"
- , " then"
- , " zcat $HOME/.cabal/packages/hackage.haskell.org/00-index.tar.gz >"
- , " $HOME/.cabal/packages/hackage.haskell.org/00-index.tar;"
- , " fi"
- , " - travis_retry cabal update -v"
- , " - sed -i 's/^jobs:/-- jobs:/' ${HOME}/.cabal/config"
- , " - cabal install --only-dependencies --enable-tests --enable-benchmarks --flags='" ++ flags ++ "' --dry -v > installplan.txt"
- , " - sed -i -e '1,/^Resolving /d' installplan.txt; cat installplan.txt"
- , ""
- , "# check whether current requested install-plan matches cached package-db snapshot"
- , " - if diff -u installplan.txt $HOME/.cabsnap/installplan.txt;"
- , " then"
- , " echo \"cabal build-cache HIT\";"
- , " rm -rfv .ghc;"
- , " cp -a $HOME/.cabsnap/ghc $HOME/.ghc;"
- , " cp -a $HOME/.cabsnap/lib $HOME/.cabsnap/share $HOME/.cabsnap/bin $HOME/.cabal/;"
- , " else"
- , " echo \"cabal build-cache MISS\";"
- , " rm -rf $HOME/.cabsnap;"
- , " mkdir -p $HOME/.ghc $HOME/.cabal/lib $HOME/.cabal/share $HOME/.cabal/bin;"
- -- TODO: shouldn't gtk3 et al build-depend on gtk2hs-buildtools? We have to do
- -- this incantation twice because gtk2hs-buildtools may not be installed before
- -- the things that secretly depend on its presence. Silly.
- , " travis_retry cabal install --only-dependencies --enable-tests --enable-benchmarks --flags='" ++ flags ++ "';"
- , " fi"
- , " "
- , "# snapshot package-db on cache miss"
- , " - if [ ! -d $HOME/.cabsnap ];"
- , " then"
- , " echo \"snapshotting package-db to build-cache\";"
- , " mkdir $HOME/.cabsnap;"
- , " cp -a $HOME/.ghc $HOME/.cabsnap/ghc;"
- , " cp -a $HOME/.cabal/lib $HOME/.cabal/share $HOME/.cabal/bin installplan.txt $HOME/.cabsnap/;"
- , " fi"
- , ""
- , "# Here starts the actual work to be performed for the package under test;"
- , "# any command which exits with a non-zero exit code causes the build to fail."
- , "script:"
- , " - if [ -f configure.ac ]; then autoreconf -i; fi"
- , " - cabal configure --enable-tests --enable-benchmarks -v2 # -v2 provides useful information for debugging"
- , " - cabal build # this builds all libraries and executables (including tests/benchmarks)"
- -- FIXME
- -- , " - cabal test"
- , " - ./dist/setup/setup test"
- , " - cabal check"
- , " - cabal sdist # tests that a source-distribution can be generated"
- , ""
- , "# Check that the resulting source distribution can be built & installed."
- , "# If there are no other `.tar.gz` files in `dist`, this can be even simpler:"
- , "# `cabal install --force-reinstalls dist/*-*.tar.gz`"
- , " - SRC_TGZ=$(cabal info . | awk '{print $2;exit}').tar.gz &&"
- , " (cd dist && cabal install --force-reinstalls \"$SRC_TGZ\")"
- , ""
- , "# EOF"
- ]
-
- return ()
- where
- knownGhcVersions :: [Version]
- knownGhcVersions = fmap (`Version` [])
- [ [7,0,1], [7,0,2], [7,0,3], [7,0,4]
- , [7,2,1], [7,2,2]
- , [7,4,1], [7,4,2]
- , [7,6,1], [7,6,2], [7,6,3]
- , [7,8,1], [7,8,2], [7,8,3], [7,8,4]
- , [7,10,1]
- -- 7.10.2 is not in the magic whitelist at
- -- https://github.com/travis-ci/apt-package-whitelist/blob/master/ubuntu-precise
- --, [7,10,2]
- , [7,11] -- HEAD
- ]
-
- lookupCabVer :: Version -> Version
- lookupCabVer (Version (x:y:_) _) = maybe (error "internal error") id $ lookup (x,y) cabalVerMap
- where
- cabalVerMap = fmap (fmap (`Version` []))
- [ ((7, 0), [1,16])
- , ((7, 2), [1,16])
- , ((7, 4), [1,16])
- , ((7, 6), [1,16])
- , ((7, 8), [1,18])
- , ((7,10), [1,22])
- , ((7,11), [1,23]) -- HEAD
- ]
-
- isHead (Version (_:y:_) _) = odd (y :: Int)
-
- disp' v | isHead v = "head"
- | otherwise = display v
-
- pathForPackage :: String -> Maybe String
- pathForPackage xpkg = do
- i <- findIndex (== '-') xpkg
- let (p, _:ver) = splitAt i xpkg
- guard $ p `elem` ["happy", "alex"]
- return $ "/opt/" ++ p ++ "/" ++ ver ++ "/bin"
-