Hack to rebuild the complement editable image (#15184)

* Hack to rebuild the complement editable image

* Changelog
This commit is contained in:
David Robertson 2023-03-07 11:51:18 +00:00 committed by GitHub
parent 869ef75cb7
commit c0854ce65a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 1 deletions

1
changelog.d/15184.misc Normal file
View File

@ -0,0 +1 @@
Add an option to force a rebuild of the "editable" complement image.

View File

@ -59,6 +59,11 @@ Run the complement test suite on Synapse.
is important. is important.
Not suitable for use in CI in case the editable environment is impure. Not suitable for use in CI in case the editable environment is impure.
--rebuild-editable
Force a rebuild of the editable build of Synapse.
This is occasionally useful if the built-in rebuild detection with
--editable fails, e.g. when changing configure_workers_and_start.py.
For help on arguments to 'go test', run 'go help testflag'. For help on arguments to 'go test', run 'go help testflag'.
EOF EOF
} }
@ -82,6 +87,9 @@ while [ $# -ge 1 ]; do
"-e"|"--editable") "-e"|"--editable")
use_editable_synapse=1 use_editable_synapse=1
;; ;;
"--rebuild-editable")
rebuild_editable_synapse=1
;;
*) *)
# unknown arg: presumably an argument to gotest. break the loop. # unknown arg: presumably an argument to gotest. break the loop.
break break
@ -116,7 +124,9 @@ if [ -n "$use_editable_synapse" ]; then
fi fi
editable_mount="$(realpath .):/editable-src:z" editable_mount="$(realpath .):/editable-src:z"
if docker inspect complement-synapse-editable &>/dev/null; then if [ -n "$rebuild_editable_synapse" ]; then
unset skip_docker_build
elif docker inspect complement-synapse-editable &>/dev/null; then
# complement-synapse-editable already exists: see if we can still use it: # complement-synapse-editable already exists: see if we can still use it:
# - The Rust module must still be importable; it will fail to import if the Rust source has changed. # - The Rust module must still be importable; it will fail to import if the Rust source has changed.
# - The Poetry lock file must be the same (otherwise we assume dependencies have changed) # - The Poetry lock file must be the same (otherwise we assume dependencies have changed)