capistrano 3.11.0 → 3.19.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/.docker/Dockerfile +7 -0
  3. data/.docker/ssh_key_rsa +49 -0
  4. data/.docker/ssh_key_rsa.pub +1 -0
  5. data/.docker/ubuntu_setup.sh +23 -0
  6. data/.github/pull_request_template.md +0 -4
  7. data/.github/release-drafter.yml +25 -0
  8. data/.github/workflows/ci.yml +80 -0
  9. data/.github/workflows/release-drafter.yml +18 -0
  10. data/.rubocop.yml +4 -3
  11. data/CHANGELOG.md +1 -651
  12. data/DEVELOPMENT.md +5 -20
  13. data/Gemfile +40 -3
  14. data/LICENSE.txt +1 -1
  15. data/README.md +3 -3
  16. data/RELEASING.md +3 -3
  17. data/Rakefile +13 -5
  18. data/capistrano.gemspec +8 -7
  19. data/docker-compose.yml +8 -0
  20. data/features/deploy.feature +11 -1
  21. data/features/sshconnect.feature +1 -1
  22. data/features/step_definitions/assertions.rb +34 -24
  23. data/features/step_definitions/setup.rb +15 -16
  24. data/features/support/docker_gateway.rb +53 -0
  25. data/features/support/env.rb +0 -10
  26. data/features/support/remote_command_helpers.rb +3 -3
  27. data/features/support/remote_ssh_helpers.rb +33 -0
  28. data/lib/capistrano/configuration/question.rb +16 -4
  29. data/lib/capistrano/configuration/validated_variables.rb +1 -1
  30. data/lib/capistrano/doctor/variables_doctor.rb +2 -0
  31. data/lib/capistrano/dsl.rb +1 -1
  32. data/lib/capistrano/i18n.rb +2 -0
  33. data/lib/capistrano/scm/git.rb +15 -4
  34. data/lib/capistrano/scm/tasks/git.rake +19 -7
  35. data/lib/capistrano/tasks/deploy.rake +26 -3
  36. data/lib/capistrano/templates/deploy.rb.erb +2 -2
  37. data/lib/capistrano/templates/stage.rb.erb +1 -1
  38. data/lib/capistrano/version.rb +1 -1
  39. data/spec/integration/dsl_spec.rb +16 -14
  40. data/spec/lib/capistrano/application_spec.rb +16 -40
  41. data/spec/lib/capistrano/configuration/plugin_installer_spec.rb +1 -1
  42. data/spec/lib/capistrano/configuration/question_spec.rb +31 -13
  43. data/spec/lib/capistrano/configuration/scm_resolver_spec.rb +4 -2
  44. data/spec/lib/capistrano/doctor/environment_doctor_spec.rb +1 -1
  45. data/spec/lib/capistrano/doctor/gems_doctor_spec.rb +1 -1
  46. data/spec/lib/capistrano/doctor/servers_doctor_spec.rb +1 -1
  47. data/spec/lib/capistrano/doctor/variables_doctor_spec.rb +1 -1
  48. data/spec/lib/capistrano/dsl/task_enhancements_spec.rb +6 -6
  49. data/spec/lib/capistrano/dsl_spec.rb +5 -5
  50. data/spec/lib/capistrano/plugin_spec.rb +2 -2
  51. data/spec/lib/capistrano/scm/git_spec.rb +37 -5
  52. data/spec/spec_helper.rb +13 -0
  53. data/spec/support/test_app.rb +23 -14
  54. metadata +25 -73
  55. data/.travis.yml +0 -27
  56. data/Dangerfile +0 -1
  57. data/features/support/vagrant_helpers.rb +0 -35
  58. data/spec/support/.gitignore +0 -1
  59. data/spec/support/Vagrantfile +0 -23
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f1881e1201f433bc48dbc66746fc18c7a2935a8f9fb6ebd1a1738d2ef0b76ead
4
- data.tar.gz: f568e1ce7457104688457d96651ae1fe6e3278eeaf5b690736ecbd8632c5c678
3
+ metadata.gz: 1e00f29cd54bf8ffea1fdaf725fc260c3bdcf12290dda825a76c518d62fd86cf
4
+ data.tar.gz: bafa1c5c53bb543df6a583ac12d449232abc1900c572e4166f2ab51f5e2889b4
5
5
  SHA512:
6
- metadata.gz: 5048e39674899c372e7d591935ac6c4a399678adb42ee5b5ab593d471c6a91dc611b280267a3718c5967c1eeb31b94dcc6a3257e358de5df2a95ac72c9392132
7
- data.tar.gz: fe376f99e76a3743abc79358325afb84a33ce544c6f13b2b2491f324d67c7ad4e7c3b1c28ac421ae64ed26ffe82620837d78ce75433c16adec74fa6f8123123e
6
+ metadata.gz: f5d0e2ef2a9786a926c67480cb5a397e9c0dee02bcb99b1719026b1fad440912f245953e595c00c284378c5ae6e2b03732754c3f72cd3dbcf7af9db6374efa2d
7
+ data.tar.gz: feee6f4862320a9db782639a74db9b7d64a614ed8803193b2463c44246ce07270f061c3f16ec9c1e6f5a50a6d3ce29fc1fa6f18b90e612a148fe1bc233b79213
@@ -0,0 +1,7 @@
1
+ FROM ubuntu:22.04
2
+ WORKDIR /provision
3
+ COPY ./ssh_key_rsa.pub /root/.ssh/authorized_keys
4
+ COPY ./ubuntu_setup.sh ./
5
+ RUN ./ubuntu_setup.sh
6
+ EXPOSE 22
7
+ CMD ["/usr/sbin/sshd", "-D"]
@@ -0,0 +1,49 @@
1
+ -----BEGIN OPENSSH PRIVATE KEY-----
2
+ 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
49
+ -----END OPENSSH PRIVATE KEY-----
@@ -0,0 +1 @@
1
+ ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC6wVCoBOGYS5qfXZGiKjuh7RWExlzrQ1Gml8Z3DDCggSEibh1WXJU9+rNKTqHmVoGy36iarPfjsGWw3IbiWiMOXD7crg3BCyRbksAdrVV/MIq6BiKqnGaQvOV9AE5RbA6W4/prkEKL/tdnpVaWpMbtthEo6H/IO3Ih+iXomni4NkUBjDjJf6sr8B/vI4aIcp0I5/uXNI3zIWVhQ6yBZ4hORs8jPBMpe7jMoFb5z8t6AUUfmIc66JiLmLX2hqYEreIB7rzlPOsDsOByADubyA/r3zYaA5kZxLbHT+sgQitjb4TATdoCxX6+utxVQeRZK4YrCR3D/aWzhmOgl5OHxO7ArWgICXC18icrvDdUACxOWKRaSe0WXw0nX1L0ZteKuYsvFAf0t0nNPStnWkxzRA4snzJCiptuWcjx8p7WY0Ph267ERq9rNFgMDmSsHaYMOnJAXr8WF00zFcVgAW6b3MBJSmBEtcz45RvMDv4XiMvzZiP/1+we+JXI1f5Y8LhyVtkeME5J7u6LrNUI5bvBMyDodMkmOonRdpL4iwOUXwpETX7i8fsr7+8YFw+JtXQ0iePq4V2PmmPNXThljhkhConwVnGsfV4qfuGaGJgMKJfK/E6hF8W9ejEH9BvmX7l75fyAK0zMq+n6ohOr4M4wVcz9G+s+5vSZ5JNwYTyVrAthtw== test@example.com
@@ -0,0 +1,23 @@
1
+ #!/bin/bash
2
+
3
+ set -e
4
+
5
+ export DEBIAN_FRONTEND=noninteractive
6
+
7
+ # Create `deployer` user
8
+ adduser --disabled-password deployer < /dev/null
9
+ mkdir -p /home/deployer/.ssh
10
+ cp /root/.ssh/authorized_keys /home/deployer/.ssh
11
+ chown -R deployer:deployer /home/deployer/.ssh
12
+ chmod 600 /home/deployer/.ssh/authorized_keys
13
+
14
+ # Install and configure sshd
15
+ apt -y update
16
+ apt-get -y install openssh-server git
17
+ {
18
+ echo "Port 22"
19
+ echo "PasswordAuthentication no"
20
+ echo "ChallengeResponseAuthentication no"
21
+ } >> /etc/ssh/sshd_config
22
+ mkdir /var/run/sshd
23
+ chmod 0755 /var/run/sshd
@@ -13,14 +13,10 @@ to keep the conversation linked together.
13
13
  - [ ] Did you run `bundle exec rubocop -a` to fix linter issues?
14
14
  - [ ] If relevant, did you create a test?
15
15
  - [ ] Did you confirm that the RSpec tests pass?
16
- - [ ] If you are fixing a bug or introducing a new feature, did you add a CHANGELOG entry?
17
16
 
18
17
  ### Other Information
19
18
 
20
19
  If there's anything else that's important and relevant to your pull
21
20
  request, mention that information here.
22
21
 
23
- If you are updating any of the CHANGELOG files or are asked to update the
24
- CHANGELOG files by reviewers, please add the CHANGELOG entry at the top of the file where indicated.
25
-
26
22
  Thanks for helping improve Capistrano!
@@ -0,0 +1,25 @@
1
+ name-template: "$RESOLVED_VERSION"
2
+ tag-template: "v$RESOLVED_VERSION"
3
+ categories:
4
+ - title: "⚠️ Breaking Changes"
5
+ label: "⚠️ Breaking"
6
+ - title: "✨ New Features"
7
+ label: "✨ Feature"
8
+ - title: "🐛 Bug Fixes"
9
+ label: "🐛 Bug Fix"
10
+ - title: "📚 Documentation"
11
+ label: "📚 Docs"
12
+ - title: "🏠 Housekeeping"
13
+ label: "🏠 Housekeeping"
14
+ version-resolver:
15
+ minor:
16
+ labels:
17
+ - "⚠️ Breaking"
18
+ - "✨ Feature"
19
+ default: patch
20
+ change-template: "- $TITLE (#$NUMBER) @$AUTHOR"
21
+ no-changes-template: "- No changes"
22
+ template: |
23
+ $CHANGES
24
+
25
+ **Full Changelog:** https://github.com/$OWNER/$REPOSITORY/compare/$PREVIOUS_TAG...v$RESOLVED_VERSION
@@ -0,0 +1,80 @@
1
+ name: CI
2
+ on:
3
+ push:
4
+ branches: [master]
5
+ pull_request:
6
+ jobs:
7
+ spec:
8
+ runs-on: ubuntu-latest
9
+ strategy:
10
+ matrix:
11
+ ruby:
12
+ [
13
+ "2.3",
14
+ "2.4",
15
+ "2.5",
16
+ "2.6",
17
+ "2.7",
18
+ "3.0",
19
+ "3.1",
20
+ "3.2",
21
+ "3.3",
22
+ "head",
23
+ ]
24
+ steps:
25
+ - uses: actions/checkout@v4
26
+ - name: Set up Ruby
27
+ uses: ruby/setup-ruby@v1
28
+ with:
29
+ ruby-version: ${{ matrix.ruby }}
30
+ bundler-cache: true
31
+ - name: rake spec
32
+ run: bundle exec rake spec
33
+ spec-legacy:
34
+ runs-on: ubuntu-20.04
35
+ strategy:
36
+ matrix:
37
+ ruby: ["2.0", "2.1", "2.2"]
38
+ steps:
39
+ - uses: actions/checkout@v4
40
+ - name: Set up Ruby
41
+ uses: ruby/setup-ruby@v1
42
+ with:
43
+ ruby-version: ${{ matrix.ruby }}
44
+ bundler-cache: true
45
+ - name: rake spec
46
+ run: bundle exec rake spec
47
+ spec-all:
48
+ runs-on: ubuntu-latest
49
+ needs: [spec, spec-legacy]
50
+ if: always()
51
+ steps:
52
+ - name: All tests ok
53
+ if: ${{ !(contains(needs.*.result, 'failure')) }}
54
+ run: exit 0
55
+ - name: Some tests failed
56
+ if: ${{ contains(needs.*.result, 'failure') }}
57
+ run: exit 1
58
+ rubocop:
59
+ runs-on: ubuntu-latest
60
+ steps:
61
+ - uses: actions/checkout@v4
62
+ - name: Set up Ruby
63
+ uses: ruby/setup-ruby@v1
64
+ with:
65
+ ruby-version: "ruby" # latest-stable
66
+ bundler-cache: true
67
+ - name: rake rubocop
68
+ run: bundle exec rake rubocop
69
+ features:
70
+ needs: [spec, spec-legacy]
71
+ runs-on: ubuntu-latest
72
+ steps:
73
+ - uses: actions/checkout@v4
74
+ - name: Set up Ruby
75
+ uses: ruby/setup-ruby@v1
76
+ with:
77
+ ruby-version: "ruby" # latest-stable
78
+ bundler-cache: true
79
+ - name: rake features
80
+ run: bundle exec rake features
@@ -0,0 +1,18 @@
1
+ name: Release Drafter
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - master
7
+
8
+ permissions:
9
+ contents: write
10
+ pull-requests: read
11
+
12
+ jobs:
13
+ update_release_draft:
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - uses: release-drafter/release-drafter@v5
17
+ env:
18
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
data/.rubocop.yml CHANGED
@@ -8,17 +8,18 @@ Lint/AmbiguousBlockAssociation:
8
8
  false
9
9
  Metrics/BlockLength:
10
10
  Exclude:
11
+ - "*.gemspec"
11
12
  - "spec/**/*"
12
13
  - "lib/**/*.rake"
13
14
  Style/BarePercentLiterals:
14
15
  EnforcedStyle: percent_q
16
+ Style/BracesAroundHashParameters:
17
+ Exclude:
18
+ - spec/integration/dsl_spec.rb
15
19
  Style/ClassAndModuleChildren:
16
20
  Enabled: false
17
21
  Style/DoubleNegation:
18
22
  Enabled: false
19
- Style/FileName:
20
- Exclude:
21
- - "Dangerfile"
22
23
  Style/IndentHeredoc:
23
24
  Enabled: false
24
25
  Style/SpaceAroundEqualsInParameterDefault: