diff options
author | Will Thompson <will@willthompson.co.uk> | 2018-07-03 15:09:11 +0100 |
---|---|---|
committer | Will Thompson <will@willthompson.co.uk> | 2018-07-03 15:09:11 +0100 |
commit | 89bafbc61e726b0befcc3ef03e0ce432a53497a0 (patch) | |
tree | 16270926204aeb28785eeebd7979be0f5c4f5d55 | |
parent | cbd465603d84349e5ae56786eaba2b85bea40075 (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.yml | 79 | ||||
-rw-r--r-- | Makefile | 3 | ||||
-rwxr-xr-x | make_travis_yml.hs | 228 |
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 @@ -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" - |