How do I target a specific commit SHA with capistrano deploy

前端 未结 4 546
南旧
南旧 2021-01-30 07:11

I am wondering how I can target a specific commit SHA in Git for deployment, using Capistrano? It should be something like

cap deploy --version=

        
相关标签:
4条回答
  • 2021-01-30 07:30

    molf's answer didn't work for me (using capistrano 2.11.2). I had to use "revision" instead of branch, like this:

    cap -S revision=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy
    
    0 讨论(0)
  • 2021-01-30 07:30

    ask :branch, 'master'

    Prompts for input but defaults to 'master' if you press return.

    0 讨论(0)
  • 2021-01-30 07:39

    For Capistrano 2.9 until 3.0:

    cap -S revision=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy
    

    For older versions of Capistrano, you can deploy a particular git commit/tree/branch/tag by doing this:

    cap -s branch=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy
    

    In some cases there may be a need of specifying the Environment as an argument as well. production is just an example.

    cap production -S revision=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy
    
    0 讨论(0)
  • 2021-01-30 07:52

    Capistrano 3

    In your deploy.rb or stage-specific file like config/deploy/production.rb

    set :branch, ENV.fetch('REVISION', 'master')
    

    This allows you to point to a specific git revision. It accepts a SHA but also anything that resolves to a real revision (e.g. git tag, annotated tag, or branch).

    Use it on the command line by setting the REVISION environment variable, e.g.

    bundle exec cap production deploy REVISION=80655da8d80aaaf92ce5357e7828dc09adb00993
    
    bundle exec cap staging deploy REVISION=my-topic-branch
    
    0 讨论(0)
提交回复
热议问题