I am looking to combine Mojolicious
, perlbrew
and carton
to deploy an app into a live environment. Have access to Jenkins, so can package the app as an rpm or could update codebase via a git pull.
Really looking for deployment strategies that make the process as simple as possible.
Does anyone have any experience of using these tools together?
We are running mojo via hypnotoad and might place it behind an apiaxle proxy.
We have a system at work that automates this; I can't share the code, but I can summarize.
project-dev
, project-qa
, etc.).cpanfile
and keep them up-to-date in our checkouts using carton install
.cpanfile.snapshot
.carton install --deployment
(actually it runs a script in each repo that does that plus any other necessary build tasks for that project).local
directory created by carton, but excluding .git
) to a new directory, git init
s it, creates a new commit, and pushes it to the deployment repo.rsync
s the contents of the build tree (excluding .git
) onto the deployment tree, does a git add --all
and commits, and pushes it as a new build.In all cases the build is pushed to the deployment repo as a branch named after the build number. Then the deployment tool can ask jenkins for a list of successful builds, and deploy a build by having the servers do git fetch ; git reset --hard origin/$BUILDNUMBER
in a checkout of the deployment repo.