ci: Reduce file size of cabal and stack based builds

By passing -split-sections to all dependencies, GHC will link only the
modules we actually use and not the full package for each dependency.
This does neither work on MacOS nor Windows, thus we don't do it for
stack right now.

Stripping unused symbols in CI will further decrease the size of those files.
This commit is contained in:
Wolfgang Walther
2024-02-06 10:19:31 +01:00
committed by Wolfgang Walther
parent cc9b725005
commit 0eca2954b3
4 changed files with 14 additions and 2 deletions
+4 -1
View File
@@ -10,6 +10,9 @@ build_task:
fingerprint_script: cat postgrest.cabal stack.yaml.lock
reupload_on_changes: false
build_script: stack build -j 1 --local-bin-path . --copy-bins
build_script: |
stack build -j 1 --local-bin-path . --copy-bins
strip postgrest
bin_artifacts:
path: postgrest
+5 -1
View File
@@ -55,10 +55,14 @@ cd ~/$SCRIPT_DIR
git clone https://github.com/PostgREST/postgrest.git
cd postgrest
git checkout $PGRST_GITHUB_COMMIT
cp cabal.project.non-nix cabal.project
cabal v2-update && cabal v2-build
# Copy the built binary to the Dockerfile directory
# Strip unused symbols from executable
PGRST_BIN=$(cabal exec which postgrest | tail -1)
strip $PGRST_BIN
# Copy the built binary to the Dockerfile directory
cp $PGRST_BIN ~/$DOCKER_BUILD_DIR
# Move and compress the built binary
+2
View File
@@ -207,6 +207,8 @@ jobs:
run: ${{ matrix.deps }}
- name: Build with Stack
run: stack build --local-bin-path result --copy-bins
- name: Strip Executable
run: strip result/postgrest*
- name: Save built executable as artifact
uses: actions/upload-artifact@v4
with:
+3
View File
@@ -4,6 +4,9 @@
packages: .
package *
ghc-options: -split-sections
-- Example of depending on a forked repository (the same dependency
-- would be mentioned in nix/overlays/haskell-packages.nix and
-- stack.yaml, and should refer to a main branch commit of the