@@ -8,6 +8,7 @@ module Publish
8import Control.Exception (bracket_)
8import Control.Exception (bracket_)
9import Control.Monad (void)
9import Control.Monad (void)
10import qualified Data.List as List
10import qualified Data.List as List
11+import qualified Data.NonEmptyList as NE
11import qualified Data.Utf8 as Utf8
12import qualified Data.Utf8 as Utf8
12import qualified System.Directory as Dir
13import qualified System.Directory as Dir
13import qualified System.Exit as Exit
14import qualified System.Exit as Exit
@@ -17,10 +18,12 @@ import qualified System.Info as Info
17import qualified System.IO as IO
18import qualified System.IO as IO
18import qualified System.Process as Process
19import qualified System.Process as Process
21+import qualified Build
20import qualified Deps.Bump as Bump
22import qualified Deps.Bump as Bump
21import qualified Deps.Diff as Diff
23import qualified Deps.Diff as Diff
22import qualified Deps.Registry as Registry
24import qualified Deps.Registry as Registry
23import qualified Deps.Website as Website
25import qualified Deps.Website as Website
26+import qualified Elm.Details as Details
24import qualified Elm.Docs as Docs
27import qualified Elm.Docs as Docs
25import qualified Elm.Magnitude as M
28import qualified Elm.Magnitude as M
26import qualified Elm.Outline as Outline
29import qualified Elm.Outline as Outline
@@ -107,7 +110,7 @@ publish env@(Env root cache manager registry outline) =
108 verifyReadme root
111 verifyReadme root
109 verifyLicense root
112 verifyLicense root
110− docs <- error "TODO Project.generateDocs details" details
113+ docs <- verifyBuild root
111 verifyVersion env pkg vsn docs maybeKnownVersions
114 verifyVersion env pkg vsn docs maybeKnownVersions
112 commitHash <- verifyTag manager pkg vsn
115 commitHash <- verifyTag manager pkg vsn
113 verifyNoChanges commitHash vsn
116 verifyNoChanges commitHash vsn
@@ -172,6 +175,27 @@ verifyLicense root =
181+verifyBuild :: FilePath -> Task.Task Exit.Publish Docs.Documentation
183+ reportBuildCheck $ Task.run $
184+ do details@(Details.Details _ outline _ _ _) <-
185+ Task.eio Exit.PublishBadDetails $
186+ Details.load Reporting.silent root
190+ Details.ValidApp _ -> Task.throw Exit.PublishApplication
191+ Details.ValidPkg _ [] -> Task.throw Exit.PublishNoExposed
192+ Details.ValidPkg _ (e:es) -> return (NE.List e es)
194+ Task.eio Exit.PublishBuildProblem $
195+ Build.fromExposed Reporting.silent root details Build.KeepDocs exposed
175-- VERIFY GITHUB TAG
199-- VERIFY GITHUB TAG