on master help sign in
add logic to verify build and generate docs in `publish`
commit34b71bdb3e208abdf53b458e8660858ed693428d authorEvan Czaplicki <evancz@users.noreply.github.com> dateTue 11 Jun 2019, 12:42 (7 years ago) parent9678b3e
2 files changed+27−1
builder/src/Reporting/Exit.hs+2 terminal/src/Publish.hs+25−1
builder/src/Reporting/Exit.hs+2
@@ -264,6 +264,7 @@ newPackageOverview =
264264data Publish
265265 = PublishNoOutline
266266 | PublishBadOutline Outline
267+ | PublishBadDetails Details
267268 | PublishMustHaveLatestRegistry RegistryProblem
268269 | PublishApplication
269270 | PublishNotInitialVersion V.Version
@@ -275,6 +276,7 @@ data Publish
275276 | PublishNoReadme
276277 | PublishShortReadme
277278 | PublishNoLicense
279+ | PublishBuildProblem BuildProblem
278280 | PublishCannotGetTag Http.Error
279281 | PublishCannotGetZip Http.Error
280282 | PublishCannotDecodeZip
terminal/src/Publish.hs+25−1
@@ -8,6 +8,7 @@ module Publish
88import Control.Exception (bracket_)
99import Control.Monad (void)
1010import qualified Data.List as List
11+import qualified Data.NonEmptyList as NE
1112import qualified Data.Utf8 as Utf8
1213import qualified System.Directory as Dir
1314import qualified System.Exit as Exit
@@ -17,10 +18,12 @@ import qualified System.Info as Info
1718import qualified System.IO as IO
1819import qualified System.Process as Process
1920
21+import qualified Build
2022import qualified Deps.Bump as Bump
2123import qualified Deps.Diff as Diff
2224import qualified Deps.Registry as Registry
2325import qualified Deps.Website as Website
26+import qualified Elm.Details as Details
2427import qualified Elm.Docs as Docs
2528import qualified Elm.Magnitude as M
2629import qualified Elm.Outline as Outline
@@ -107,7 +110,7 @@ publish env@(Env root cache manager registry outline) =
107110
108111 verifyReadme root
109112 verifyLicense root
110− docs <- error "TODO Project.generateDocs details" details
113+ docs <- verifyBuild root
111114 verifyVersion env pkg vsn docs maybeKnownVersions
112115 commitHash <- verifyTag manager pkg vsn
113116 verifyNoChanges commitHash vsn
@@ -172,6 +175,27 @@ verifyLicense root =
172175
173176
174177
178+-- VERIFY BUILD
179+
180+
181+verifyBuild :: FilePath -> Task.Task Exit.Publish Docs.Documentation
182+verifyBuild root =
183+ reportBuildCheck $ Task.run $
184+ do details@(Details.Details _ outline _ _ _) <-
185+ Task.eio Exit.PublishBadDetails $
186+ Details.load Reporting.silent root
187+
188+ exposed <-
189+ case outline of
190+ Details.ValidApp _ -> Task.throw Exit.PublishApplication
191+ Details.ValidPkg _ [] -> Task.throw Exit.PublishNoExposed
192+ Details.ValidPkg _ (e:es) -> return (NE.List e es)
193+
194+ Task.eio Exit.PublishBuildProblem $
195+ Build.fromExposed Reporting.silent root details Build.KeepDocs exposed
196+
197+
198+
175199-- VERIFY GITHUB TAG
176200
177201