git.iko.soy/typeable/octopod
on master help sign in
Optimize everything except local packages during development (#90)

* Optimize everything except local packages during development * Optimize CLI * Turn warning into errors if prod * Fixed warnings

commit77456f33f04b84011fedaf03a0f04fd639c455ed authoriko <ilyakooo0@gmail.com> dateThu 2 Sep 2021, 16:46 (5 years ago) parent434c9f8
5 files changed+14−10
.github/workflows/build.yaml+1−1 default.nix+10−5 nix/default.nix+2−1 octopod-backend/octopod-backend.cabal−2 octopod-backend/src/Octopod/Server.hs+1−1
.github/workflows/build.yaml+1−1
@@ -47,7 +47,7 @@ jobs:
4747 name: octopod
4848 signingKey: "${{ secrets.CACHIX_SIGNING_KEY }}"
4949 - name: Build
50− run: nix-build -A projectCross.musl64.hsPkgs.octo-cli.components.exes.octo
50+ run: nix-build -A projectCross.musl64.hsPkgs.octo-cli.components.exes.octo --arg prod true
5151 - uses: actions/upload-artifact@v2
5252 with:
5353 name: octo-cli-linux
default.nix+10−5
@@ -4,9 +4,13 @@
44, pkgs ? pkgsSrc (haskellNix.nixpkgsArgs // { inherit system; })
55, nix-filter ? import sources.nix-filter
66, system ? builtins.currentSystem
7+, prod ? false
78}:
89let
910 octopod-css = import ./octopod-css { inherit pkgsSrc; };
11+ addLocalOptions = x:
12+ if prod then x // { ghcOptions = [ "-Werror" ]; }
13+ else x // { ghcOptions = [ "-O0" ]; };
1014
1115 hsPkgs = pkgs.haskell-nix.cabalProject {
1216 src = nix-filter {
@@ -24,14 +28,15 @@ let
2428
2529 modules = [
2630 {
31+ ghcOptions = [ "-O2" ];
2732 dontStrip = false;
2833 dontPatchELF = false;
2934 enableDeadCodeElimination = true;
30− packages.octopod-backend.src = ./octopod-backend;
31− packages.octo-cli.src = ./octo-cli;
32− packages.octopod-api.src = ./octopod-api;
33− packages.octopod-frontend.src = ./octopod-frontend;
34− packages.octopod-common.src = ./octopod-common;
35+ packages.octopod-backend = addLocalOptions { src = ./octopod-backend; };
36+ packages.octo-cli = addLocalOptions { src = ./octo-cli; };
37+ packages.octopod-api = addLocalOptions { src = ./octopod-api; };
38+ packages.octopod-frontend = addLocalOptions { src = ./octopod-frontend; };
39+ packages.octopod-common = addLocalOptions { src = ./octopod-common; };
3540 }
3641 ];
3742
nix/default.nix+2−1
@@ -2,9 +2,10 @@
22, octopod-css ? import ../octopod-css { inherit pkgsSrc; }
33, migrations ? ../migrations
44, system ? builtins.currentSystem
5−, hsPkgs ? import ./.. { inherit system; }
5+, hsPkgs ? import ./.. { inherit system prod; }
66, pkgs ? hsPkgs.pkgs
77, pkgsSrc ? hsPkgs.pkgsSrc
8+, prod ? true
89}:
910let
1011 octo-cli = hsPkgs.octo-cli.components.exes.octo;
octopod-backend/octopod-backend.cabal−2
@@ -75,7 +75,6 @@ library
7575 , bytestring
7676 , cassava
7777 , conduit
78− , deriving-aeson
7978 , octopod-common
8079 , fast-logger
8180 , generic-lens
@@ -98,7 +97,6 @@ library
9897 , typed-process
9998 , unix
10099 , warp
101− , x509
102100 , containers
103101 , monad-control
104102 , lifted-base
octopod-backend/src/Octopod/Server.hs+1−1
@@ -445,7 +445,7 @@ updateDeploymentInfo dName = do
445445 case ec of
446446 ExitSuccess -> case parseDeploymentMetadata (unStdout out) of
447447 Right dMeta -> upsertDeploymentMetadatum dName dMeta
448− Left err -> liftBase $ log $ "could not get deployment info, could not parse CSV: " <> T.pack err
448+ Left err' -> liftBase $ log $ "could not get deployment info, could not parse CSV: " <> T.pack err'
449449 ExitFailure _ ->
450450 liftBase $
451451 log $