From 166810e02d5d6ca5a8d369ab504a5d7f460f32c5 Mon Sep 17 00:00:00 2001 From: Recursion Ninja Date: Wed, 28 Aug 2024 13:41:00 -0400 Subject: [PATCH] Updating integration test configuration --- .github/workflows/integration-test-suite.yaml | 2 +- config/cabal.project.integration | 119 ++++++++++++++++++ 2 files changed, 120 insertions(+), 1 deletion(-) create mode 100644 config/cabal.project.integration diff --git a/.github/workflows/integration-test-suite.yaml b/.github/workflows/integration-test-suite.yaml index 12157da0b..bc79633e6 100644 --- a/.github/workflows/integration-test-suite.yaml +++ b/.github/workflows/integration-test-suite.yaml @@ -11,7 +11,7 @@ defaults: shell: bash env: - PROJECTFILE: --project-file=cfg/cabal.project.integration + PROJECTFILE: --project-file=config/cabal.project.integration TESTDETAILS: --test-show-details=streaming TESTOPTIONS: --test-options="--timeout=30s" THISMAINEXE: PhyGraph:phyg diff --git a/config/cabal.project.integration b/config/cabal.project.integration new file mode 100644 index 000000000..02762bc14 --- /dev/null +++ b/config/cabal.project.integration @@ -0,0 +1,119 @@ +--------------------------------------------------------------------------------- +-- Domain of PHAGE packages +-- * PHAGE-integration-tests +--------------------------------------------------------------------------------- + +packages: + pkg/PHAGE-integration-tests + pkg/PhyGraph + pkg/PhyloLib + pkg/*/*.cabal + +with-compiler: ghc-9.2.4 + + +--------------------------------------------------------------------------------- +-- Output paths +-- +-- Place build output(s) in more accessible locations. Binaries should go in `bin` +-- and log files of the build/benchmarks/tests should go in `log`. +--------------------------------------------------------------------------------- + +-- datadir: ./data +-- docdir: ./doc +-- htmldir: ./doc/html +symlink-bindir: ./bin +installdir: ./bin +logs-dir: ./log +install-method: copy +overwrite-policy: always + + +--------------------------------------------------------------------------------- +-- Build metadata flags +-- +-- Sensible alterations from the defaults to improve the build experience during +-- iterative development. Simultaneously, does not hinder release builds. +--------------------------------------------------------------------------------- + +haddock-html: True +haddock-tests: True +haddock-benchmarks: True +haddock-internal: True +haddock-hyperlink-source: True +jobs: $ncpus +keep-going: True +minimize-conflict-set: True + + +--------------------------------------------------------------------------------- +-- Package flags (useful defaults) +-- +-- Instruct all transative dependencies to be built *with both* optimization and +-- profiling enabled. This reduces rebuilds when debugging while not sacraficing +-- undue execution speed from imported code. +-- +-- Contrastingly, *disable both* optimization and profiling when building the +-- current package's codebase. This improves the frequent recompilation speed +-- during iterative development. +-- +-- Finally, enable all warnings and then prune out the undesirable ones. Having +-- the large litany of warnings enabled forces pre-emptive compatibility with +-- future breaking changes as well as improving overall code quality. +--------------------------------------------------------------------------------- + +-- Applies to *all* packages, not just dependencies... +package * + benchmarks: False + documentation: False + tests: False + optimization: 2 + + +package PHAGE-integration-tests + benchmarks: False + documentation: False + tests: True + executable-static: False + optimization: 2 + flags: -SingleThreaded + + +package PhyGraph + benchmarks: False + documentation: False + tests: False + executable-static: False + optimization: 2 + flags: -SingleThreaded + + +--------------------------------------------------------------------------------- +-- Dependency specifications +-- +-- Always allow a newer version of libraries which are tightly coupled to the GHC +-- compiler version. This allows the project to build with newer versions of the +-- compiler without having to tediously tinker with dependencies, both direct and +-- transitive. +-- +-- Always allow a newer version of libraries which have had a major release due +-- to a security or performance patch. Add a `preference` indicating the desire +-- to use a version greater than or equal to the patch. +--------------------------------------------------------------------------------- + +allow-newer: + aeson, + bytestring, + text, + +preferences: + aeson >= 2.0.0, + bytestring >= 0.11.3, + filepath >= 1.4.100.0, + mtl >= 2.3, + text >= 2.0, + +source-repository-package + type: git + location: https://github.com/recursion-ninja/bv-little + tag: 4541d78545933f450af5c241a83e4b07a0e69dca