diff options
Diffstat (limited to 'lib/chef/resource/scm/git.rb')
-rw-r--r-- | lib/chef/resource/scm/git.rb | 158 |
1 files changed, 79 insertions, 79 deletions
diff --git a/lib/chef/resource/scm/git.rb b/lib/chef/resource/scm/git.rb index af49704ee6..fc5fb412c6 100644 --- a/lib/chef/resource/scm/git.rb +++ b/lib/chef/resource/scm/git.rb @@ -29,85 +29,85 @@ class Chef description "Use the **git** resource to manage source control resources that exist in a git repository. git version 1.6.5 (or higher) is required to use all of the functionality in the git resource." examples <<~DOC - **Use the git mirror** - - ```ruby - git '/opt/my_sources/couch' do - repository 'git://git.apache.org/couchdb.git' - revision 'master' - action :sync - end - ``` - - **Use different branches** - - To use different branches, depending on the environment of the node: - - ```ruby - branch_name = if node.chef_environment == 'QA' - 'staging' - else - 'master' - end - - git '/home/user/deployment' do - repository 'git@github.com:git_site/deployment.git' - revision branch_name - action :sync - user 'user' - group 'test' - end - ``` - - Where the `branch_name` variable is set to staging or master, depending on the environment of the node. Once this is determined, the `branch_name` variable is used to set the revision for the repository. If the git status command is used after running the example above, it will return the branch name as `deploy`, as this is the default value. Run Chef Infra Client in debug mode to verify that the correct branches are being checked out: - - ``` - sudo chef-client -l debug - ``` - - **Install an application from git using bash** - - The following example shows how Bash can be used to install a plug-in for rbenv named ruby-build, which is located in git version source control. First, the application is synchronized, and then Bash changes its working directory to the location in which ruby-build is located, and then runs a command. - - ```ruby - git "#{Chef::Config[:file_cache_path]}/ruby-build" do - repository 'git://github.com/rbenv/ruby-build.git' - revision 'master' - action :sync - end - - bash 'install_ruby_build' do - cwd "#{Chef::Config[:file_cache_path]}/ruby-build" - user 'rbenv' - group 'rbenv' - code <<-EOH - ./install.sh - EOH - environment 'PREFIX' => '/usr/local' - end - ``` - - **Notify a resource post-checkout** - - ```ruby - git "#{Chef::Config[:file_cache_path]}/my_app" do - repository node['my_app']['git_repository'] - revision node['my_app']['git_revision'] - action :sync - notifies :run, 'bash[compile_my_app]', :immediately - end - ``` - - **Pass in environment variables** - - ```ruby - git '/opt/my_sources/couch' do - repository 'git://git.apache.org/couchdb.git' - revision 'master' - environment 'VAR' => 'whatever' - action :sync - end - ``` + **Use the git mirror** + + ```ruby + git '/opt/my_sources/couch' do + repository 'git://git.apache.org/couchdb.git' + revision 'master' + action :sync + end + ``` + + **Use different branches** + + To use different branches, depending on the environment of the node: + + ```ruby + branch_name = if node.chef_environment == 'QA' + 'staging' + else + 'master' + end + + git '/home/user/deployment' do + repository 'git@github.com:git_site/deployment.git' + revision branch_name + action :sync + user 'user' + group 'test' + end + ``` + + Where the `branch_name` variable is set to staging or master, depending on the environment of the node. Once this is determined, the `branch_name` variable is used to set the revision for the repository. If the git status command is used after running the example above, it will return the branch name as `deploy`, as this is the default value. Run Chef Infra Client in debug mode to verify that the correct branches are being checked out: + + ``` + sudo chef-client -l debug + ``` + + **Install an application from git using bash** + + The following example shows how Bash can be used to install a plug-in for rbenv named ruby-build, which is located in git version source control. First, the application is synchronized, and then Bash changes its working directory to the location in which ruby-build is located, and then runs a command. + + ```ruby + git "#{Chef::Config[:file_cache_path]}/ruby-build" do + repository 'git://github.com/rbenv/ruby-build.git' + revision 'master' + action :sync + end + + bash 'install_ruby_build' do + cwd "#{Chef::Config[:file_cache_path]}/ruby-build" + user 'rbenv' + group 'rbenv' + code <<-EOH + ./install.sh + EOH + environment 'PREFIX' => '/usr/local' + end + ``` + + **Notify a resource post-checkout** + + ```ruby + git "#{Chef::Config[:file_cache_path]}/my_app" do + repository node['my_app']['git_repository'] + revision node['my_app']['git_revision'] + action :sync + notifies :run, 'bash[compile_my_app]', :immediately + end + ``` + + **Pass in environment variables** + + ```ruby + git '/opt/my_sources/couch' do + repository 'git://git.apache.org/couchdb.git' + revision 'master' + environment 'VAR' => 'whatever' + action :sync + end + ``` DOC property :additional_remotes, Hash, |