Is launcher bootstrap / run repeatable?

My question is:

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.

Thanks in advance.

1 Like

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.

2 Likes

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.

5 Likes

Ok thanks @schleifer . I’ll take a look at that setting.

1 Like