Switch from development to production in hybris - sap-commerce-cloud

I accidently installed Hybris in a development environment on my production machine. How do I switch to production without changing the configurations that I made? Will ant clean all resets the configuration?

ant clean all will simply rebuild the platform using the configuration you provided in your *.properties files.
To switch to production, I suggest you read the following articles from Hybris Wiki:
https://wiki.hybris.com/display/release5/Setting+Up+a+Production+System
Best regards

There is an ant target to set the configurations for the production machines.
ant production
Find more explantations here:
Hybris Wiki ant production
To your question about the properties, where have you done the changes? In the *.properties files itself? Normally those changes should not be overwritten. It depends on which kind of properties we are talking about.
Maybe you can check the ant targets to see what will be changed.
Guillaume is not 100% right. There are 'buildcallbacks.xml' files, that also can change properties settings. You have to figure out.

Related

Omnibus Gitlab version 7.4.3 at a custom relative_url_root (http://mydomain/gitlab)

I have successfully installed older versions of gitlab and hosted them at a location like this:
mydomain/gitlab
with the new version of gitlab doing all of the config though the gitlab-ctl and via me editing the /etc/gitlab/gitlab.rb I'm not sure how to achieve this set-up.
I find lots of documentation on stackexchange for older versions of gitlab that did not use gitlab-ctl for configuration but not for the new version. Presently I have gitlab installed and running fine at:
mydomain
I want to move it to:
mydomain/gitlab
Anybody know how to do this for version 7.4.3?
Thanks :)
Serving from a relative URL root seems to be simply not implemented on Omnibus GitLab: https://gitlab.com/gitlab-org/omnibus-gitlab/blob/ed51ec97401bba955c93e61f8ef860520f745837/files/gitlab-cookbooks/gitlab/templates/default/gitlab.yml.erb#L24 (since no template variable is inserted there)
You could work around that by modifying all the required configuration files manually as explained in the comment on gitlab.yml, but that would really be a lot of manual work and those configs would get overwritten if you reconfigure, so I recommend you request the feature at: http://feedback.gitlab.com/forums/176466-general and send a pull request implementing that.
This problem was also raised at: Omnibus GitLab on IP without a domain-name and with custom relative_url_root
I ran across this same issue this week and set out to find a solution. I'm not all that familiar with RoR so I ended up creating a Bash script to automate the process instead.
Now it'd be a lot nicer if we could just automate all this through /etc/gitlab/gitlab.rb and hopefully somebody sets that up at some point (maybe someone has that I just can't find?), but in the meantime feel free to use this script as needed. Run as root on a system with a GitLab Omnibus-package installation. Tested on GitLab CE 7.9.0 with Bash 4.2.
GitLab Relative URL Setter

Separate TFS Build excluding a single project

I have a solution that currently builds nicely in TFS. I have just added a Sandcastle help File Builder project to it so that the help files can be generated. Now the solutions takes ages to build locally (it has also doubled the build time on the TFS Server).
In practice I'd be happy generating the help files once per day, or only when specifically requested as part of a build.
I tried creating a separate solution (for a new build) which included the Sandcastle project but I got a warning saying that the projects were already under source control.
What is the best way to configure TFS/the solution for this sort of situation? Can I have two builds that run on separate schedules and include/exclude certain projects in the solution?
You can create a new solution configuration that excludes building your help project. Then in your TFS build you can specify which configuration to build. You could have a CI build that doesn't include your help project, and then a nightly build that includes everything.

how to monitor a remote read-only subversion repo for commit changes?

I have a couple of dependencies in my Java project on 3rd party libs, and some of them are undergoing development that I would like to track.
I would like to be able to be notified, (By email, desktop popup, or otherwise) when changes are committed to the remote svn repo so I can examine their impact etc.
I looked at svnmailer, but it would seem to require the repo to be local (I think??)
also I found some windows tools that do the job, but I am running linux desktop. so no go there.
worst case, I can do some cron script to poll for remote changes using the command line tools, but I would prefer some existing tool.
Sounds like a good use for a continuous integration server. Something like CruiseControl or Hudson are designed for this use case - the whole point of them is to to check your source control regularly, retrieve any changes, build the project and notify someone. In this case, it sounds like you don't even need to build the project, just send an email anyway.
If you don't already have a CI server this might seem like a little overkill but I bet once you've got one set up you'll find yourself using it again.

Drupal: do you use SVN for websites development?

Do you use Subversion while developing a website with drupal ?
I'm not talking about modules development, but websites development (i.e. adding hook functions, modifying template file.. etc)
thanks
Yes.
Anything that's got any kind of ongoing development or is going to change over time should be version controlled.
Even if you're just doing a very small project, the value of having a version history is indesputable, and being able to make changes without worrying about overwriting someone else's updates is priceless.
Yes, its's good keep a SVN repository synced with your local instance.For that purpose you can use Eclipse.
Yes, but we are moving to git in the near future because it offers a better feature set (distributed SCM ftw) and more options for managing our code base (git submodules, stashing, better hook integration, better merging support, rebasing, and so much more). For the time being we've got our repos setup like so:
/trunk
/branches/6.x/1.x/core
/branches/6.x/1.x/sitename.domain.edu
/branches/6.x/1.x/sitename2.domain.edu
/branches/6.x/1.1.x/core
/branches/6.x/1.1.x/sitename.domain.edu
...
/tags/6.x/1.x/core
/tags/6.x/1.x/sitename.domain.edu
/tags/6.x/1.x/sitename2.domain.edu
/tags/6.x/1.1.x/core
/tags/6.x/1.1.x/sitename.domain.edu
...
Each branch is a svn copy of the trunk repo (where we do most of our development) and each tag is a svn copy of it's corresponding branch. The core branch is the primary distro that we distribute to all of our sites that share the university's look and feel, and each subsite is a site with special modules, custom theme, or any other functionality that isn't part of the primary distro. It makes moving between drupal releases a lot easier, but you can start to run into problems merging occasionally. Also you run into performance issues when the repo starts to grow, which is part of the reasoning behind moving to git.
Yes. Version control is critical. Distributed version control systems such as Git, Mercurial, and Bazaar are particularly nice, and let you start committing immediately, without the need to push those changes to a central server.
My Drupal workflow: use Mercurial and its sub-repositories feature to create independent repositories for 1) Drupal + contributed modules, 2) theme, and 3) custom modules. That way, I can clone from a single URL, get my entire project, and be able to track changes to each distinct piece independently.

Deployment after CI builds

Im pretty new to CI so bear with me here. I have just setup an instance of Team City in on a local machine, and I can clearly see the benefits.
The one thing we do want understand is how we can managed the deployment aspect of CI. What we really want to achieve are two builds:
1) We check in to our source repository and the CI server notices the change and compiles the code, tests etc.
2) We manually trigger a build that compiles the code, copies the code to a remote server and update its IIS mappings.
Now the first build is pretty much wrapped up with TeamCity. But I assume that the deployment aspect of this is going to involve some scripting (Nant, MsBuild, Rake etc) is this correct?
If this is the case, I can see that transferring files from the build machine to a remote server will be ok, but will we be able to update IIS mappings without being on the same network? For that matter where is THE correct place to deploy a CI server, should is live on the same network as the apps we deploy?
Finally, we have been (rather unorthadoxily) using IronRuby to run rake scripts as our build runner. This is simply because we like Rake, but if we were to look at Nant/Msbuild do they have any baked in tasks that would simplify what we are trying to achieve?
Cheers, Chris.
We use MSBuild exclusively, just a choice. I am sure Nant and the others do things just as well. We only publish to a dev environment (for dev testing) and a stage environment (Where QA actually tests). I would not suggest that you put the production system push on this as the temptation to force builds might be too great for some people.
We use some of the MSBuild Community Tasks

Resources