From: Stavros Ntentos <redacted>
While trying to mimic a CI environment (to be able to
locally run tests in isolation), I didn't find enough
instructions how to do so - even though the project has CI set up.
Attempt to bridge the gap, by providing a starting/discussion point.
Stavros Ntentos (1):
ci: facilitate dev to mimic a CI environment
.../setup-local-dev-environment-docker.sh | 43 +++++++++++++++++++
ci/setup-local-dev-environment-docker.sh | 1 +
2 files changed, 44 insertions(+)
create mode 100644 Documentation/howto/setup-local-dev-environment-docker.sh
create mode 120000 ci/setup-local-dev-environment-docker.sh
--
2.31.0
From: Stavros Ntentos <redacted>
While trying to mimic a CI environment (to be able to
locally run tests in isolation), I didn't find enough
instructions how to do so - even though the project has CI set up.
Attempt to bridge the gap, by providing a starting/discussion point.
Leave instructions for people that want to
run a ci-like isolated environment locally.
---
.../setup-local-dev-environment-docker.sh | 43 +++++++++++++++++++
ci/setup-local-dev-environment-docker.sh | 1 +
2 files changed, 44 insertions(+)
create mode 100644 Documentation/howto/setup-local-dev-environment-docker.sh
create mode 120000 ci/setup-local-dev-environment-docker.sh
@@ -0,0 +1,43 @@+#!/bin/false++# shellcheck shell=sh++# Partially based on instructions from:+# ci/run-docker.sh+#+# Note: Alpine (and consequently the other variant ["non-32-bit"]) complains of:+# git-compat-util.h: 1139: #error "Git requires REG_STARTEND support. Compile with NO_REGEX=NeedsStartEnd"+# and no+# ```bash+# export NO_REGEX=NeedsStartEnd+# /usr/src/git/ci/run-docker-build.sh 0+# ```+# helps++dockerrun-itv"${PWD}:/usr/src/git"--entrypoint/bin/bash"daald/ubuntu32:xenial"++# And then, inside, initialize with:++exportjobname=Linux32++# Helpful initializations:++cat>>~/.gdbinit<<"EOF"+# https://stackoverflow.com/a/3176802/2309247+sethistorysaveon+sethistorysize-1+sethistoryfilename~/.gdb_history+EOF+chmod600~/.gdbinit++# cd to repo++cd/usr/src/git/||echo"cd error!"++# In lieu of `$ make`:+ci/run-docker-build.sh0++# # And then run a test with:+# prove t/t6130-pathspec-noglob.sh+# t/t6130-pathspec-noglob.sh+# ci/run-docker-build.sh 0 && prove t/t6130-pathspec-noglob.sh
Wait, why did you make this documentation /bin/false script? I think
it is better to be in Asciidoc format (.txt)
quoted hunk
+# shellcheck shell=sh++# Partially based on instructions from:+# ci/run-docker.sh+#+# Note: Alpine (and consequently the other variant ["non-32-bit"]) complains of:+# git-compat-util.h: 1139: #error "Git requires REG_STARTEND support. Compile with NO_REGEX=NeedsStartEnd"+# and no+# ```bash+# export NO_REGEX=NeedsStartEnd+# /usr/src/git/ci/run-docker-build.sh 0+# ```+# helps++docker run -itv "${PWD}:/usr/src/git" --entrypoint /bin/bash "daald/ubuntu32:xenial"++# And then, inside, initialize with:++export jobname=Linux32++# Helpful initializations:++cat >> ~/.gdbinit <<"EOF"+# https://stackoverflow.com/a/3176802/2309247+set history save on+set history size -1+set history filename ~/.gdb_history+EOF+chmod 600 ~/.gdbinit++# cd to repo++cd /usr/src/git/ || echo "cd error!"++# In lieu of `$ make`:+ci/run-docker-build.sh 0++# # And then run a test with:+# prove t/t6130-pathspec-noglob.sh+# t/t6130-pathspec-noglob.sh+# ci/run-docker-build.sh 0 && prove t/t6130-pathspec-noglob.sh
Wait, why did you make this documentation /bin/false script? I think
it is better to be in Asciidoc format (.txt)
My full intention was to actually _create_ a script that would put a
wanna-be developer (me) from (a) looking at my terminal inside git/,
to (b) have a ci-like environment, inside an abstraction layer (docker)
with linked sources (i.e. the "${PWD}:/usr/src/git" part).
However, the way sources and docker invocation are defined, I find it hard
to create "the script". Also because (again) my docker knowledge is limited.
I want future nitpick-fixers (hopefully with more docker experience),
to look at this script with such agenda in mind - and not to "just"
document their findings alongside mine.
`#!/bin/false` is simply my way of saying "it's not ready to be run yet",
and I used `.sh` to get formatting / syntax highlighting cheaper than
running a fully-fledged .md file.
If you still insist it's no good as a ".sh",
my intention would be to make it .md (to get some formatting in it).