+def jardin_build_factory():
+ path_env = {
+ "PATH": "/run/current-system/sw/bin"
+ }
+ factory = util.BuildFactory()
+ factory.addStep(steps.Git(logEnviron=False, repourl=E.JARDIN_GIT_URL,
+ submodules=True, sshPrivateKey=open(E.SSH_KEY_PATH).read().rstrip(),
+ sshHostKey=E.SSH_HOST_KEY, mode="full", method="fresh"))
+ factory.addStep(NixShellCommand(name="build website",
+ logEnviron=False, haltOnFailure=True,
+ env=path_env, command="jekyll build --trace --baseurl /jardin"))
+ factory.addStep(steps.MasterShellCommand(command="rm -rf {}".format(E.JARDIN_RELEASE_PATH)))
+ factory.addStep(steps.DirectoryUpload(workersrc="_site",
+ masterdest=E.JARDIN_RELEASE_PATH,
+ url="https://www.immae.eu/jardin"))
+ factory.addStep(steps.MasterShellCommand(command="chmod -R a+rX {}".format(E.JARDIN_RELEASE_PATH)))
+
+ return factory
+