Capistrano 3 pulling command line arguments

前端 未结 3 1849
醉话见心
醉话见心 2020-12-24 08:29

I\'m in the process of upgrading from Capistrano 2 to Capistrano 3. In Cap 2 I was using the following to take a command line argument as the branch name (otherwise default

3条回答
  •  萌比男神i
    2020-12-24 09:11

    To give an updated and working solution for Capistrano 3 (as it took me a while to find and too many tests to make it works).

    My files are like:

    config/
        deploy/
            staging.rb
            production.rb
        deploy.rb
    ...
    Capfile
    

    In staging.rb I have:

    server 'staging', roles: %w(db)
    
    set :branch,    ENV.fetch('REVISION', 'master')
    set :use_sudo,  false
    set :user,      'toto'
    set :deploy_to, '/var/www'
    

    (In server 'staging', staging is a SSH connexion, defined in my .ssh/config)

    Then, to deploy a specific revision, I just need to call:

    cap staging deploy REVISION=3b2d9ab
    

    Where 3b2d9ab is the Git commit hash (short or long version).

提交回复
热议问题