graphql-engine/cabal.project.ci.local
kodiakhq[bot] 020198969f ci: fix up pro build scripts, optimize cabal/ghc build flags
Before these changes:

**pro build:** 52min
**oss build**: 62min

After:

**pro build:** 25min
**oss build**: 23min

This decreases overall CI wall-clock time from 1:50:00 to 1:15:00.

Despite bumping the instance size for OSS builds this should (back-of-envelope) **_cut_ CI costs** for haskell build stuff by ~33%

Future work will:

- cache library dependency build products: saves further ~8 min (build and wallclock)
- use the oss lib build products in pro as well: saves further ~5min server time (i.e. saves money for same build time)
- maybe cache the rest of `dist-newstyle`: savings depend on the diff (at most 4.5 min; is this even worthwhile?)

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/2937
GitOrigin-RevId: a1faceaf1adfc1701e634a887f2cdabacab5cddd
2021-11-24 08:20:14 +00:00

43 lines
1.3 KiB
Plaintext

-- The project configuration used when building in CI.
reject-unconstrained-dependencies: all
package *
ghc-options:
-- We compile with package-level parallelism, so just use a small amount
-- of module-level parallelism for dependencies:
-- TODO: tune me
-j2
-- Limit heap size to 15G, to maintain some breathing room given
-- the 16G of available memory on the current "XXLarge" instance
+RTS -M15000m -RTS
-- For performance, with `-j`:
+RTS -A64m -n2m -RTS
-- Enable optimizations in all local (hasura) packages:
flags: +optimize-hasura
package graphql-engine
ghc-options:
-- At this point though we definitely want full module-level parallelism:
-j
-Werror
tests: true
benchmarks: true
-- %%%-BEGIN-PRO-ONLY-CONTENT-%%%
-- NOTE:
-- The label directly above this note marks the beginning of the pro-only
-- section of this file that should be removed by `Copybara` when migrating
-- this file to the public `graphql-engine` repository. We use a simple
-- regular expression to identify these segments (see the "transformations" in
-- `copy.bara.sky`), so please take care when manipulating this label!
package graphql-engine-pro
ghc-options:
-- At this point though we definitely want full module-level parallelism:
-j
-Werror
tests: true