If I have a checkout of discourse_docker at revision A. and I run launcher bootstrap web_only followed by launcher run web_only at time T1 and then, at time T2 I run the exact same commands, will I get the exact same software running at T1 as T2?
ie. does the commit id of discourse_docker + whatever state is in the yaml files constitute the complete state that builds the running artifact?
I suspect that it is not because I seem to see Discourse pulling from git remotes during build and startup but I’d just like to check with the community.
It depends on what branch you are pulling. If it’s tests-passed, then you are likely to get a different version at every rebuild /bootstrap. You could or either a beta version or a commit id there to see that things stay the same.
If you want paid support to get your larger problem solved and have a budget, my contact info is in my profile.
thanks @pfaffman . Quick clarification. By branch do you mean the branch of discourse_docker or is there another setting that can lock the main discourse to a certain branch? Just to be clear, in my example, I am not deliberately pulling new code for either discourse_docker or discourse . I’m getting the feeling that discourse_docker does either one, or both behind the scenes. Ideally I would want to disable this behaviour so I can get a repeatable build. Is this possible?
Launcher will pull the version of Discourse specified by the params: version: key in web_only.yml. As described in that file, the default is tests-passed.
In addition, plugins will normally update unless you pin a version in their git clone.