Run GIT_TEST_COMMIT_GRAPH and GIT_TEST_MULTI_PACK_INDEX during CI
cover Run GIT_TEST_COMMIT_GRAPH and GIT_TEST_MULTI_PACK_INDEX during CI
Our CI scripts include a step to run the test suite with certain optional variables enabled. Now that all branches should build and have tests succeed with GIT_TEST_COMMIT_GRAPH and GIT_TEST_MULTI_PACK_INDEX enabled, add those variables to that stage.
Note: the GIT_TEST_MULTI_PACK_INDEX variable has not merged all the way down, so will be ignored if this series is merged faster than that one. However, it is safe to make these changes orthogonally as all (known) test breaks with GIT_TEST_MULTI_PACK_INDEX=1 are fixed in the topic that introduces the variable.
I also created a build definition on Azure Pipelines that runs the test suite with different subsets of the test variables, split by the following types:
1) Index options 2) Commit-graph 3) Multi-pack-index
These builds are found at [1]. There are benefits to testing the variables all together but also separately. I didn't want to create new stages in the CI scripts to avoid consuming extra resources.
This series is based on js/vsts-ci to avoid conflicts with that series, but is not necessarily a hard dependence.
Thanks, -Stolee
[1] https://git.visualstudio.com/git/_build?definitionId=4Build definition that tests Git with different arrangements of GIT_TEST_* variables.
Derrick Stolee (1):
ci: add optional test variables
ci/run-build-and-tests.sh | 2 ++ 1 file changed, 2 insertions(+)
base-commit: d82963f34cf6921ed29d1fc2d96b16acf9005159
Published-As: https://github.com/gitgitgadget/git/releases/tags/pr-49%2Fderrickstolee%2Fci-vars-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-49/derrickstolee/ci-vars-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/49
Signature · 1 line
gitgitgadget
PATCH 1/1 ci: add optional test variables
From: Derrick Stolee <[email protected]>
The commit-graph and multi-pack-index features introduce optional data structures that are not required for normal Git operations. It is important to run the normal test suite without them enabled, but it is helpful to also run the test suite using them.
Our continuous integration scripts include a second test stage that runs with optional GIT_TEST_* variables enabled. Add the following two variables to that stage:
GIT_TEST_COMMIT_GRAPH
GIT_TEST_MULTI_PACK_INDEX
This will slow down the operation, as we build a commit-graph file after every 'git commit' operation and build a multi-pack-index during every 'git repack' operation. However, it is important that future changes are compatible with these features.
--- ci/run-build-and-tests.sh | 2 ++ 1 file changed, 2 insertions(+)
ci/run-build-and-tests.sh +2 -0
@@ -15,6 +15,8 @@ then export GIT_TEST_FULL_IN_PACK_ARRAY=true export GIT_TEST_OE_SIZE=10 export GIT_TEST_OE_DELTA_SIZE=5 + export GIT_TEST_COMMIT_GRAPH=1 + export GIT_TEST_MULTI_PACK_INDEX=1 make --quiet test fi
Signature · 1 line
gitgitgadget
Quoted 1 line · Derrick Stolee via GitGitGadget
Newlines are hard. Sorry for the formatting issues when translating from a PR description.
Quoted 2 lines
Build definition
that tests Git with different arrangements of GIT_TEST_* variables.
Thanks,
-Stolee