dpl 2.0.3.beta.4 → 2.0.3.beta.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile +15 -3
- data/Gemfile.lock +444 -211
- data/Rakefile +36 -34
- data/bin/dpl +3 -1
- data/dpl.gemspec +25 -0
- data/lib/dpl/cli.rb +19 -14
- data/lib/dpl/ctx/bash.rb +18 -12
- data/lib/dpl/ctx/test.rb +21 -15
- data/lib/dpl/ctx.rb +2 -0
- data/lib/dpl/helper/assets.rb +4 -2
- data/lib/dpl/helper/cmd.rb +20 -18
- data/lib/dpl/helper/config_file.rb +5 -3
- data/lib/dpl/helper/cookbook_site_streaming_uploader.rb +249 -0
- data/lib/dpl/helper/env.rb +26 -22
- data/lib/dpl/helper/github.rb +2 -0
- data/lib/dpl/helper/interpolate.rb +8 -4
- data/lib/dpl/helper/memoize.rb +4 -1
- data/lib/dpl/helper/squiggle.rb +3 -1
- data/lib/dpl/helper/transliterate.rb +3 -1
- data/lib/dpl/helper/wrap.rb +3 -1
- data/lib/dpl/helper/zip.rb +3 -1
- data/lib/dpl/provider/dsl.rb +18 -4
- data/lib/dpl/provider/examples.rb +6 -2
- data/lib/dpl/provider/status.rb +26 -24
- data/lib/dpl/providers/anynines.rb +22 -20
- data/lib/dpl/providers/azure_web_apps.rb +21 -19
- data/lib/dpl/providers/bintray.rb +44 -37
- data/lib/dpl/providers/bluemixcloudfoundry.rb +38 -36
- data/lib/dpl/providers/boxfuse.rb +12 -10
- data/lib/dpl/providers/cargo.rb +7 -5
- data/lib/dpl/providers/chef_supermarket.rb +82 -80
- data/lib/dpl/providers/cloud66.rb +17 -15
- data/lib/dpl/providers/cloudfiles.rb +8 -6
- data/lib/dpl/providers/cloudformation.rb +191 -187
- data/lib/dpl/providers/cloudfoundry.rb +32 -30
- data/lib/dpl/providers/codedeploy.rb +35 -33
- data/lib/dpl/providers/convox.rb +32 -25
- data/lib/dpl/providers/datica.rb +30 -28
- data/lib/dpl/providers/ecr.rb +66 -64
- data/lib/dpl/providers/elasticbeanstalk.rb +14 -12
- data/lib/dpl/providers/engineyard.rb +60 -58
- data/lib/dpl/providers/firebase.rb +6 -4
- data/lib/dpl/providers/flynn.rb +8 -6
- data/lib/dpl/providers/gae.rb +28 -25
- data/lib/dpl/providers/gcs.rb +59 -57
- data/lib/dpl/providers/git_push.rb +199 -195
- data/lib/dpl/providers/gleis.rb +19 -17
- data/lib/dpl/providers/hackage.rb +15 -13
- data/lib/dpl/providers/hephy.rb +18 -16
- data/lib/dpl/providers/heroku/api.rb +72 -70
- data/lib/dpl/providers/heroku/git.rb +15 -13
- data/lib/dpl/providers/heroku.rb +40 -38
- data/lib/dpl/providers/lambda.rb +134 -134
- data/lib/dpl/providers/launchpad.rb +45 -43
- data/lib/dpl/providers/netlify.rb +7 -5
- data/lib/dpl/providers/npm.rb +61 -58
- data/lib/dpl/providers/nuget.rb +8 -6
- data/lib/dpl/providers/openshift.rb +8 -6
- data/lib/dpl/providers/opsworks.rb +23 -21
- data/lib/dpl/providers/pages/api.rb +14 -14
- data/lib/dpl/providers/pages/git.rb +53 -47
- data/lib/dpl/providers/pages.rb +3 -1
- data/lib/dpl/providers/puppetforge.rb +6 -4
- data/lib/dpl/providers/pypi.rb +55 -54
- data/lib/dpl/providers/releases.rb +30 -23
- data/lib/dpl/providers/rubygems.rb +35 -31
- data/lib/dpl/providers/s3.rb +148 -142
- data/lib/dpl/providers/scalingo.rb +18 -16
- data/lib/dpl/providers/script.rb +4 -2
- data/lib/dpl/providers/snap.rb +12 -9
- data/lib/dpl/providers/surge.rb +7 -5
- data/lib/dpl/providers/testfairy.rb +47 -43
- data/lib/dpl/providers/transifex.rb +20 -18
- data/lib/dpl/providers.rb +3 -1
- data/lib/dpl/string_ext.rb +3 -1
- data/lib/dpl/support/aws_sdk_patch.rb +4 -1
- data/lib/dpl/support/gems.rb +7 -3
- data/lib/dpl/support/gstore_patch.rb +3 -1
- data/lib/dpl/support/version.rb +13 -12
- data/lib/dpl/version.rb +3 -1
- data/lib/dpl.rb +2 -0
- data/status.json +237 -0
- metadata +32 -15
- /data/lib/dpl/providers/{packagecloud.rb → packagecloud.rb_} +0 -0
data/lib/dpl/providers/nuget.rb
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module Dpl
|
|
2
4
|
module Providers
|
|
3
5
|
class Nuget < Provider
|
|
@@ -5,9 +7,9 @@ module Dpl
|
|
|
5
7
|
|
|
6
8
|
full_name 'nuget'
|
|
7
9
|
|
|
8
|
-
description sq(<<-
|
|
10
|
+
description sq(<<-STR)
|
|
9
11
|
tbd
|
|
10
|
-
|
|
12
|
+
STR
|
|
11
13
|
|
|
12
14
|
env :nuget, :dotnet
|
|
13
15
|
|
|
@@ -18,7 +20,7 @@ module Dpl
|
|
|
18
20
|
opt '--skip_duplicate', 'Do not overwrite existing packages'
|
|
19
21
|
|
|
20
22
|
msgs login: 'Authenticating with API key %{api_key}',
|
|
21
|
-
push:
|
|
23
|
+
push: 'Pushing package %{src} to %{registry}'
|
|
22
24
|
|
|
23
25
|
cmds push: 'dotnet nuget push %{src} -k %{api_key} -s %{registry} %{push_opts}'
|
|
24
26
|
|
|
@@ -31,9 +33,9 @@ module Dpl
|
|
|
31
33
|
|
|
32
34
|
private
|
|
33
35
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
36
|
+
def push_opts
|
|
37
|
+
opts_for(%i[no_symbols skip_duplicate], dashed: true)
|
|
38
|
+
end
|
|
37
39
|
end
|
|
38
40
|
end
|
|
39
41
|
end
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module Dpl
|
|
2
4
|
module Providers
|
|
3
5
|
class Openshift < Provider
|
|
@@ -7,9 +9,9 @@ module Dpl
|
|
|
7
9
|
|
|
8
10
|
full_name 'OpenShift'
|
|
9
11
|
|
|
10
|
-
description sq(<<-
|
|
12
|
+
description sq(<<-STR)
|
|
11
13
|
tbd
|
|
12
|
-
|
|
14
|
+
STR
|
|
13
15
|
|
|
14
16
|
env :openshift
|
|
15
17
|
|
|
@@ -19,14 +21,14 @@ module Dpl
|
|
|
19
21
|
opt '--app APP', 'OpenShift application', default: :repo_name
|
|
20
22
|
|
|
21
23
|
cmds install: 'curl %{URL} | tar xz',
|
|
22
|
-
login:
|
|
24
|
+
login: './oc login --token=%{token} --server=%{server}',
|
|
23
25
|
prepare: './oc project %{project}',
|
|
24
|
-
deploy:
|
|
26
|
+
deploy: './oc start-build %{app} --follow --commit %{git_sha}'
|
|
25
27
|
|
|
26
28
|
errs install: 'CLI tool installation failed',
|
|
27
|
-
login:
|
|
29
|
+
login: 'Authentication failed',
|
|
28
30
|
prepare: 'Unable to select project %{project}',
|
|
29
|
-
deploy:
|
|
31
|
+
deploy: 'Deployment failed'
|
|
30
32
|
|
|
31
33
|
URL = 'https://mirror.openshift.com/pub/openshift-v4/clients/oc/4.1/linux/oc.tar.gz'
|
|
32
34
|
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module Dpl
|
|
2
4
|
module Providers
|
|
3
5
|
class Opsworks < Provider
|
|
@@ -7,9 +9,9 @@ module Dpl
|
|
|
7
9
|
|
|
8
10
|
full_name 'AWS OpsWorks'
|
|
9
11
|
|
|
10
|
-
description sq(<<-
|
|
12
|
+
description sq(<<-STR)
|
|
11
13
|
tbd
|
|
12
|
-
|
|
14
|
+
STR
|
|
13
15
|
|
|
14
16
|
gem 'aws-sdk-opsworks', '~> 1.0'
|
|
15
17
|
|
|
@@ -27,17 +29,17 @@ module Dpl
|
|
|
27
29
|
opt '--update_on_success', 'When wait-until-deployed and updated-on-success are both not given, application source is updated to the current SHA. Ignored when wait-until-deployed is not given.', alias: :update_app_on_success
|
|
28
30
|
opt '--custom_json JSON', 'Custom json options override (overwrites default configuration)'
|
|
29
31
|
|
|
30
|
-
msgs login:
|
|
32
|
+
msgs login: 'Using Access Key: %{access_key_id}',
|
|
31
33
|
create_deploy: 'Creating deployment ... ',
|
|
32
|
-
done:
|
|
33
|
-
waiting:
|
|
34
|
-
failed:
|
|
35
|
-
success:
|
|
36
|
-
update_app:
|
|
34
|
+
done: 'Done: %s',
|
|
35
|
+
waiting: 'Deploying ',
|
|
36
|
+
failed: 'Failed.',
|
|
37
|
+
success: 'Success.',
|
|
38
|
+
update_app: 'Updating application source branch/revision setting.',
|
|
37
39
|
app_not_found: 'App %s not found.',
|
|
38
|
-
timeout:
|
|
40
|
+
timeout: 'Timeout: failed to finish deployment within 10 minutes.',
|
|
39
41
|
service_error: 'Deployment failed. OpsWorks service error: %s',
|
|
40
|
-
comment:
|
|
42
|
+
comment: 'Deploy build %{build_number} via Travis CI'
|
|
41
43
|
|
|
42
44
|
def login
|
|
43
45
|
info :login
|
|
@@ -58,13 +60,13 @@ module Dpl
|
|
|
58
60
|
|
|
59
61
|
def deploy_config
|
|
60
62
|
compact(
|
|
61
|
-
stack_id
|
|
62
|
-
app_id
|
|
63
|
+
stack_id:,
|
|
64
|
+
app_id:,
|
|
63
65
|
command: { name: 'deploy' },
|
|
64
|
-
comment
|
|
65
|
-
custom_json
|
|
66
|
-
instance_ids
|
|
67
|
-
layer_ids:
|
|
66
|
+
comment:,
|
|
67
|
+
custom_json:,
|
|
68
|
+
instance_ids:,
|
|
69
|
+
layer_ids:
|
|
68
70
|
)
|
|
69
71
|
end
|
|
70
72
|
|
|
@@ -89,9 +91,9 @@ module Dpl
|
|
|
89
91
|
|
|
90
92
|
def update_config
|
|
91
93
|
{
|
|
92
|
-
app_id
|
|
94
|
+
app_id:,
|
|
93
95
|
app_source: {
|
|
94
|
-
revision: git_sha
|
|
96
|
+
revision: git_sha
|
|
95
97
|
}
|
|
96
98
|
}
|
|
97
99
|
end
|
|
@@ -118,7 +120,7 @@ module Dpl
|
|
|
118
120
|
|
|
119
121
|
def describe_app
|
|
120
122
|
data = opsworks.describe_apps(app_ids: [app_id])
|
|
121
|
-
error :app_not_found, app_id unless data[:apps]
|
|
123
|
+
error :app_not_found, app_id unless data[:apps]&.any?
|
|
122
124
|
data[:apps].first
|
|
123
125
|
end
|
|
124
126
|
|
|
@@ -127,7 +129,7 @@ module Dpl
|
|
|
127
129
|
end
|
|
128
130
|
|
|
129
131
|
def opsworks
|
|
130
|
-
@opsworks ||= Aws::OpsWorks::Client.new(region
|
|
132
|
+
@opsworks ||= Aws::OpsWorks::Client.new(region:, credentials:)
|
|
131
133
|
end
|
|
132
134
|
|
|
133
135
|
def credentials
|
|
@@ -135,7 +137,7 @@ module Dpl
|
|
|
135
137
|
end
|
|
136
138
|
|
|
137
139
|
def timeout(sec, &block)
|
|
138
|
-
Timeout
|
|
140
|
+
Timeout.timeout(sec, &block)
|
|
139
141
|
rescue Timeout::Error
|
|
140
142
|
error :timeout
|
|
141
143
|
end
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'timeout'
|
|
2
4
|
|
|
3
5
|
module Dpl
|
|
@@ -16,13 +18,13 @@ module Dpl
|
|
|
16
18
|
TIMEOUTS = {
|
|
17
19
|
timeout: 180,
|
|
18
20
|
open_timeout: 180
|
|
19
|
-
}
|
|
21
|
+
}.freeze
|
|
20
22
|
|
|
21
|
-
gem 'octokit', '~>
|
|
23
|
+
gem 'octokit', '~> 7'
|
|
22
24
|
|
|
23
25
|
full_name 'GitHub Pages (API)'
|
|
24
26
|
|
|
25
|
-
description sq(<<-
|
|
27
|
+
description sq(<<-STR)
|
|
26
28
|
This provider requests GitHub Pages build for the repository given by
|
|
27
29
|
the `--repo` flag, or the current one, if the flag is not given.
|
|
28
30
|
Note that `dpl` does not perform any check about the fitness of the request;
|
|
@@ -31,18 +33,18 @@ module Dpl
|
|
|
31
33
|
For example, if your GitHub Pages is configured to use `gh-pages` but the
|
|
32
34
|
deployment is run on the `master` branch, you would have to ensure that the
|
|
33
35
|
`gh-pages` would be updated accordingly during the build.
|
|
34
|
-
|
|
36
|
+
STR
|
|
35
37
|
|
|
36
38
|
opt '--repo SLUG', 'GitHub repo slug', default: :repo_slug
|
|
37
39
|
opt '--token TOKEN', 'GitHub oauth token with repo permission', required: true, secret: true, alias: :github_token
|
|
38
40
|
|
|
39
|
-
msgs not_found: sq(<<-
|
|
41
|
+
msgs not_found: sq(<<-MSG),
|
|
40
42
|
GitHub Pages not found for %{slug}.
|
|
41
43
|
Either the given token has insufficient scope (repo or public_repo), or
|
|
42
44
|
GitHub Pages is not enabled for this repo (see https://github.com/%{slug}/settings)'
|
|
43
|
-
|
|
45
|
+
MSG
|
|
44
46
|
timeout: 'GitHub Pages build request timed out',
|
|
45
|
-
deploy:
|
|
47
|
+
deploy: 'Requesting GitHub Pages build using API'
|
|
46
48
|
|
|
47
49
|
def validate
|
|
48
50
|
error :not_found unless pages_enabled?
|
|
@@ -56,7 +58,7 @@ module Dpl
|
|
|
56
58
|
response = api.pages slug
|
|
57
59
|
logger.debug response
|
|
58
60
|
|
|
59
|
-
Timeout
|
|
61
|
+
Timeout.timeout(30) do
|
|
60
62
|
until response.status == 'built'
|
|
61
63
|
response = api.pages slug
|
|
62
64
|
logger.debug response
|
|
@@ -71,10 +73,9 @@ module Dpl
|
|
|
71
73
|
|
|
72
74
|
info "Pages deployed to #{response.html_url}, using commit #{latest_pages_build.commit}"
|
|
73
75
|
logger.debug latest_pages_build
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
rescue Timeout::Error => to
|
|
76
|
+
rescue Octokit::Forbidden => e
|
|
77
|
+
error e.message
|
|
78
|
+
rescue Timeout::Error
|
|
78
79
|
error :timeout
|
|
79
80
|
end
|
|
80
81
|
|
|
@@ -96,10 +97,9 @@ module Dpl
|
|
|
96
97
|
|
|
97
98
|
def pages_enabled?
|
|
98
99
|
api.pages slug
|
|
99
|
-
rescue Octokit::NotFound
|
|
100
|
+
rescue Octokit::NotFound
|
|
100
101
|
false
|
|
101
102
|
end
|
|
102
|
-
|
|
103
103
|
end
|
|
104
104
|
end
|
|
105
105
|
end
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module Dpl
|
|
2
4
|
module Providers
|
|
3
5
|
class Pages
|
|
@@ -8,12 +10,12 @@ module Dpl
|
|
|
8
10
|
|
|
9
11
|
full_name 'GitHub Pages'
|
|
10
12
|
|
|
11
|
-
description sq(<<-
|
|
13
|
+
description sq(<<-STR)
|
|
12
14
|
tbd
|
|
13
|
-
|
|
15
|
+
STR
|
|
14
16
|
|
|
15
|
-
gem 'octokit', '~>
|
|
16
|
-
gem 'public_suffix', '~>
|
|
17
|
+
gem 'octokit', '~> 7'
|
|
18
|
+
gem 'public_suffix', '~> 5'
|
|
17
19
|
|
|
18
20
|
required :token, :deploy_key
|
|
19
21
|
|
|
@@ -36,45 +38,45 @@ module Dpl
|
|
|
36
38
|
|
|
37
39
|
needs :git
|
|
38
40
|
|
|
39
|
-
msgs login:
|
|
40
|
-
invalid_token:
|
|
41
|
+
msgs login: 'Authenticated as %s',
|
|
42
|
+
invalid_token: 'The provided GitHub token is invalid (error: %s)',
|
|
41
43
|
insufficient_scopes: 'Dpl does not have permission to access %{url} using the provided GitHub token. Please make sure the token have the repo or public_repo scope.',
|
|
42
|
-
setup_deploy_key:
|
|
43
|
-
check_deploy_key:
|
|
44
|
-
deploy:
|
|
45
|
-
keep_history:
|
|
46
|
-
work_dir:
|
|
47
|
-
committer_from_gh:
|
|
48
|
-
setup_dir:
|
|
49
|
-
git_clone:
|
|
50
|
-
git_init:
|
|
51
|
-
git_checkout:
|
|
52
|
-
copy_files:
|
|
53
|
-
git_config:
|
|
54
|
-
prepare:
|
|
55
|
-
git_push:
|
|
56
|
-
stop:
|
|
57
|
-
|
|
58
|
-
cmds git_clone:
|
|
59
|
-
git_init:
|
|
60
|
-
git_checkout:
|
|
61
|
-
check_deploy_key:
|
|
62
|
-
copy_files:
|
|
63
|
-
git_config_email:
|
|
64
|
-
git_config_name:
|
|
65
|
-
deployment_file:
|
|
66
|
-
cname:
|
|
67
|
-
git_add:
|
|
68
|
-
git_commit_hook:
|
|
69
|
-
git_commit:
|
|
70
|
-
git_show:
|
|
71
|
-
git_push:
|
|
72
|
-
|
|
73
|
-
errs copy_files:
|
|
74
|
-
check_deploy_key:
|
|
75
|
-
git_init:
|
|
76
|
-
git_checkout:
|
|
77
|
-
git_push:
|
|
44
|
+
setup_deploy_key: 'Moving deploy key %{deploy_key} to %{path}',
|
|
45
|
+
check_deploy_key: 'Checking deploy key',
|
|
46
|
+
deploy: 'Deploying branch %{target_branch} to %{url}',
|
|
47
|
+
keep_history: 'The deployment is configured to preserve the target branch if it exists on remote.',
|
|
48
|
+
work_dir: 'Using temporary work directory %{work_dir}',
|
|
49
|
+
committer_from_gh: 'The repo is configured to use committer user and email.',
|
|
50
|
+
setup_dir: 'The source dir for deployment is %s',
|
|
51
|
+
git_clone: 'Cloning the branch %{target_branch} from the remote repo',
|
|
52
|
+
git_init: 'Initializing local git repo',
|
|
53
|
+
git_checkout: 'Checking out orphan branch %{target_branch}',
|
|
54
|
+
copy_files: 'Copying %{src_dir} contents to %{work_dir}',
|
|
55
|
+
git_config: 'Configuring git committer to be %{name} <%{email}>',
|
|
56
|
+
prepare: 'Preparing to deploy %{target_branch} branch to gh-pages',
|
|
57
|
+
git_push: 'Pushing to %{url}',
|
|
58
|
+
stop: 'There are no changes to commit, stopping.'
|
|
59
|
+
|
|
60
|
+
cmds git_clone: 'git clone --quiet --branch="%{target_branch}" --depth=1 "%{remote_url}" . > /dev/null 2>&1',
|
|
61
|
+
git_init: 'git init .',
|
|
62
|
+
git_checkout: 'git checkout --orphan "%{target_branch}"',
|
|
63
|
+
check_deploy_key: 'ssh -i %{key} -T git@%{url} 2>&1 | grep successful > /dev/null',
|
|
64
|
+
copy_files: 'rsync -rl --exclude .git --delete "%{src_dir}/" .',
|
|
65
|
+
git_config_email: 'git config user.email %{quoted_email}',
|
|
66
|
+
git_config_name: 'git config user.name %{quoted_name}',
|
|
67
|
+
deployment_file: 'touch "deployed at %{now} by %{name}"',
|
|
68
|
+
cname: 'echo "%{fqdn}" > CNAME',
|
|
69
|
+
git_add: 'git add -A .',
|
|
70
|
+
git_commit_hook: 'cp %{path} .git/hooks/pre-commit',
|
|
71
|
+
git_commit: 'git commit %{git_commit_opts} -q %{git_commit_msg_opts}',
|
|
72
|
+
git_show: 'git show --stat-count=10 HEAD',
|
|
73
|
+
git_push: 'git push%{git_push_opts} --quiet "%{remote_url}" "%{target_branch}":"%{target_branch}" > /dev/null 2>&1'
|
|
74
|
+
|
|
75
|
+
errs copy_files: 'Failed to copy %{src_dir}.',
|
|
76
|
+
check_deploy_key: 'Failed to authenticate using the deploy key',
|
|
77
|
+
git_init: 'Failed to create new git repo',
|
|
78
|
+
git_checkout: 'Failed to create the orphan branch',
|
|
79
|
+
git_push: 'Failed to push the build to %{url}:%{target_branch}'
|
|
78
80
|
|
|
79
81
|
def login
|
|
80
82
|
token? ? login_token : setup_deploy_key
|
|
@@ -97,6 +99,7 @@ module Dpl
|
|
|
97
99
|
git_clone? ? git_clone : git_init
|
|
98
100
|
copy_files
|
|
99
101
|
return info :stop if git_clone? && !git_dirty?
|
|
102
|
+
|
|
100
103
|
git_config
|
|
101
104
|
git_commit
|
|
102
105
|
git_push
|
|
@@ -115,7 +118,7 @@ module Dpl
|
|
|
115
118
|
|
|
116
119
|
def setup_deploy_key
|
|
117
120
|
path = '~/.dpl/deploy_key'
|
|
118
|
-
info
|
|
121
|
+
info(:setup_deploy_key, path:)
|
|
119
122
|
mv deploy_key, path
|
|
120
123
|
chmod 0600, path
|
|
121
124
|
setup_git_ssh path
|
|
@@ -171,8 +174,8 @@ module Dpl
|
|
|
171
174
|
end
|
|
172
175
|
|
|
173
176
|
def git_commit_msg_opts
|
|
174
|
-
msg = interpolate(commit_message, vars:
|
|
175
|
-
msg.split("\n").reject(&:empty?).map { |
|
|
177
|
+
msg = interpolate(commit_message, vars:)
|
|
178
|
+
msg.split("\n").reject(&:empty?).map { |message| %(-m #{quote(message)}) }
|
|
176
179
|
end
|
|
177
180
|
|
|
178
181
|
def git_push_opts
|
|
@@ -225,6 +228,9 @@ module Dpl
|
|
|
225
228
|
|
|
226
229
|
def user
|
|
227
230
|
@user ||= api.user
|
|
231
|
+
rescue StandardError => e
|
|
232
|
+
puts "ERR: #{e.inspect}"
|
|
233
|
+
puts e.backtrace
|
|
228
234
|
end
|
|
229
235
|
|
|
230
236
|
def src_dir
|
|
@@ -236,7 +242,7 @@ module Dpl
|
|
|
236
242
|
end
|
|
237
243
|
|
|
238
244
|
def api
|
|
239
|
-
@api ||= Octokit::Client.new(access_token: token, api_endpoint:
|
|
245
|
+
@api ||= Octokit::Client.new(access_token: token, api_endpoint:)
|
|
240
246
|
end
|
|
241
247
|
|
|
242
248
|
def api_endpoint
|
|
@@ -248,7 +254,7 @@ module Dpl
|
|
|
248
254
|
end
|
|
249
255
|
|
|
250
256
|
def debug(*args)
|
|
251
|
-
info
|
|
257
|
+
info(*args) if verbose?
|
|
252
258
|
end
|
|
253
259
|
end
|
|
254
260
|
end
|
data/lib/dpl/providers/pages.rb
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module Dpl
|
|
2
4
|
module Providers
|
|
3
5
|
class Pages < Provider
|
|
@@ -7,7 +9,7 @@ module Dpl
|
|
|
7
9
|
|
|
8
10
|
env :github, :pages
|
|
9
11
|
|
|
10
|
-
opt '--strategy NAME', 'GitHub Pages deployment strategy', default: 'git', enum: %w
|
|
12
|
+
opt '--strategy NAME', 'GitHub Pages deployment strategy', default: 'git', enum: %w[api git]
|
|
11
13
|
end
|
|
12
14
|
end
|
|
13
15
|
end
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module Dpl
|
|
2
4
|
module Providers
|
|
3
5
|
class Puppetforge < Provider
|
|
@@ -7,12 +9,12 @@ module Dpl
|
|
|
7
9
|
|
|
8
10
|
full_name 'Puppet Forge'
|
|
9
11
|
|
|
10
|
-
description sq(<<-
|
|
12
|
+
description sq(<<-STR)
|
|
11
13
|
tbd
|
|
12
|
-
|
|
14
|
+
STR
|
|
13
15
|
|
|
14
|
-
gem 'puppet', '~>
|
|
15
|
-
gem 'puppet-blacksmith', '~>
|
|
16
|
+
gem 'puppet', '~> 7.25', require: 'puppet/face'
|
|
17
|
+
gem 'puppet-blacksmith', '~> 7', require: 'puppet_blacksmith'
|
|
16
18
|
|
|
17
19
|
env :puppetforge
|
|
18
20
|
|
data/lib/dpl/providers/pypi.rb
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module Dpl
|
|
2
4
|
module Providers
|
|
3
5
|
class Pypi < Provider
|
|
@@ -7,9 +9,9 @@ module Dpl
|
|
|
7
9
|
|
|
8
10
|
full_name 'PyPI'
|
|
9
11
|
|
|
10
|
-
description sq(<<-
|
|
12
|
+
description sq(<<-STR)
|
|
11
13
|
tbd
|
|
12
|
-
|
|
14
|
+
STR
|
|
13
15
|
|
|
14
16
|
env :pypi
|
|
15
17
|
|
|
@@ -30,21 +32,20 @@ module Dpl
|
|
|
30
32
|
opt '--twine_version VER', format: VERSION
|
|
31
33
|
opt '--wheel_version VER', format: VERSION
|
|
32
34
|
|
|
33
|
-
msgs login:
|
|
34
|
-
upload_docs:
|
|
35
|
+
msgs login: 'Authenticated as %{username}',
|
|
36
|
+
upload_docs: 'Uploading documentation (skip using "skip_upload_docs: true")'
|
|
35
37
|
|
|
36
|
-
cmds setup_py:
|
|
37
|
-
twine_check:
|
|
38
|
+
cmds setup_py: 'python setup.py %{distributions}',
|
|
39
|
+
twine_check: 'twine check dist/*',
|
|
38
40
|
twine_upload: 'twine upload %{skip_existing_option} -r pypi dist/*',
|
|
39
|
-
rm_dist:
|
|
40
|
-
upload_docs:
|
|
41
|
+
rm_dist: 'rm -rf dist/*',
|
|
42
|
+
upload_docs: 'python setup.py upload_docs %{docs_dir_option} -r %{server}'
|
|
41
43
|
|
|
42
|
-
errs install:
|
|
43
|
-
setup_py:
|
|
44
|
-
twine_check:
|
|
44
|
+
errs install: 'Failed to install pip, setuptools, twine or wheel.',
|
|
45
|
+
setup_py: 'setup.py failed',
|
|
46
|
+
twine_check: 'Twine check failed',
|
|
45
47
|
twine_upload: 'Twine upload failed.',
|
|
46
|
-
upload_docs:
|
|
47
|
-
|
|
48
|
+
upload_docs: 'Uploading docs failed.'
|
|
48
49
|
|
|
49
50
|
def install
|
|
50
51
|
script :install
|
|
@@ -71,7 +72,7 @@ module Dpl
|
|
|
71
72
|
|
|
72
73
|
private
|
|
73
74
|
|
|
74
|
-
|
|
75
|
+
PYPIRC = sq(<<-RC)
|
|
75
76
|
[distutils]
|
|
76
77
|
index-servers = pypi
|
|
77
78
|
pypi
|
|
@@ -79,46 +80,46 @@ module Dpl
|
|
|
79
80
|
repository: %{server}
|
|
80
81
|
username: %{username}
|
|
81
82
|
password: %{password}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
83
|
+
RC
|
|
84
|
+
|
|
85
|
+
def write_config
|
|
86
|
+
write_file('~/.pypirc', pypirc)
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
def pypirc
|
|
90
|
+
interpolate(PYPIRC, opts, secure: true)
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
def upload_docs
|
|
94
|
+
info :upload_docs
|
|
95
|
+
shell :upload_docs
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
def skip_existing_option
|
|
99
|
+
'--skip-existing' if skip_existing?
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
def docs_dir_option
|
|
103
|
+
"--upload-dir #{docs_dir}" if docs_dir
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
def setuptools_arg
|
|
107
|
+
version_arg(:setuptools)
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
def twine_arg
|
|
111
|
+
version_arg(:twine)
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
def wheel_arg
|
|
115
|
+
version_arg(:wheel)
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
def version_arg(name)
|
|
119
|
+
arg = name.to_s
|
|
120
|
+
arg << "==#{send(:"#{name}_version")}" if send(:"#{name}_version") =~ VERSION
|
|
121
|
+
arg
|
|
122
|
+
end
|
|
122
123
|
end
|
|
123
124
|
end
|
|
124
125
|
end
|