summary refs log tree commit diff
diff options
context:
space:
mode:
authorDavid Robertson <davidr@element.io>2023-03-07 11:51:18 +0000
committerGitHub <noreply@github.com>2023-03-07 11:51:18 +0000
commitc0854ce65aafc479db1a404b1ba17fb0fa4339ad (patch)
tree1f3f75c00d2b1865ad2c7e872608f1f48ea3e6fc
parentBump types-pyopenssl from 22.1.0.2 to 23.0.0.4 (#15213) (diff)
downloadsynapse-c0854ce65aafc479db1a404b1ba17fb0fa4339ad.tar.xz
Hack to rebuild the complement editable image (#15184)
* Hack to rebuild the complement editable image

* Changelog
-rw-r--r--changelog.d/15184.misc1
-rwxr-xr-xscripts-dev/complement.sh12
2 files changed, 12 insertions, 1 deletions
diff --git a/changelog.d/15184.misc b/changelog.d/15184.misc
new file mode 100644
index 0000000000..53dba1b6ba
--- /dev/null
+++ b/changelog.d/15184.misc
@@ -0,0 +1 @@
+Add an option to force a rebuild of the "editable" complement image.
diff --git a/scripts-dev/complement.sh b/scripts-dev/complement.sh
index 66aaa3d848..1b1761202f 100755
--- a/scripts-dev/complement.sh
+++ b/scripts-dev/complement.sh
@@ -59,6 +59,11 @@ Run the complement test suite on Synapse.
         is important.
         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'.
 EOF
 }
@@ -82,6 +87,9 @@ while [ $# -ge 1 ]; do
         "-e"|"--editable")
             use_editable_synapse=1
             ;;
+        "--rebuild-editable")
+            rebuild_editable_synapse=1
+            ;;
         *)
             # unknown arg: presumably an argument to gotest. break the loop.
             break
@@ -116,7 +124,9 @@ if [ -n "$use_editable_synapse" ]; then
     fi
 
     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:
         # - 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)