vx-builder 0.5.54 → 0.5.55
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/.travis.yml +3 -2
- data/lib/vx/builder/build_configuration.rb +2 -0
- data/lib/vx/builder/script_builder_v2/base.rb +67 -0
- data/lib/vx/builder/script_builder_v2/cache.rb +62 -0
- data/lib/vx/builder/script_builder_v2/clojure.rb +35 -0
- data/lib/vx/builder/script_builder_v2/clone.rb +43 -0
- data/lib/vx/builder/script_builder_v2/defaults.rb +44 -0
- data/lib/vx/builder/script_builder_v2/deploy.rb +40 -0
- data/lib/vx/builder/script_builder_v2/env.rb +65 -0
- data/lib/vx/builder/script_builder_v2/go.rb +64 -0
- data/lib/vx/builder/script_builder_v2/java.rb +36 -0
- data/lib/vx/builder/script_builder_v2/nodejs.rb +58 -0
- data/lib/vx/builder/script_builder_v2/python.rb +69 -0
- data/lib/vx/builder/script_builder_v2/ruby.rb +87 -0
- data/lib/vx/builder/script_builder_v2/rust.rb +48 -0
- data/lib/vx/builder/script_builder_v2/scala.rb +52 -0
- data/lib/vx/builder/script_builder_v2/services.rb +25 -0
- data/lib/vx/builder/script_builder_v2.rb +158 -0
- data/lib/vx/builder/templates/script_builder_v2/to_script.erb +29 -0
- data/lib/vx/builder/version.rb +1 -1
- data/lib/vx/builder.rb +5 -0
- data/spec/fixtures/script_builder_v2/simple.sh +15 -0
- data/spec/fixtures/script_builder_v2/simple.yml +89 -0
- data/spec/integration/script_builder_v2/clojure_spec.rb +41 -0
- data/spec/integration/script_builder_v2/go_spec.rb +54 -0
- data/spec/integration/script_builder_v2/nodejs_spec.rb +63 -0
- data/spec/integration/script_builder_v2/python_spec.rb +43 -0
- data/spec/integration/script_builder_v2/ruby_spec.rb +141 -0
- data/spec/integration/script_builder_v2/rust_spec.rb +41 -0
- data/spec/lib/builder/build_configuration_spec.rb +1 -0
- data/spec/lib/builder/script_builder_v2_spec.rb +52 -0
- data/spec/lib/builder/task_spec.rb +1 -1
- data/spec/support/create.rb +1 -1
- metadata +37 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8dc5e509544ffeff672245424d59e62d7d6cebe0
|
4
|
+
data.tar.gz: a7b222086011c1c59c1f31be46355dd4b7888ebc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c90f593060af8044c5883a15cc2c72bef734c4046bf33a233af95be53c4ac684f05027a5b38b496ae64a1db6234dfa874881217eebd4df124cfdd7f6d4992f09
|
7
|
+
data.tar.gz: 38f7ecd0466b9c319511c1bb94c23f4240b2edf3705f132711862a6b60b7b6ee9a144f290e155aed1e8325a1ba4015865859c9e5e5716debd4f01f7e8f895149
|
data/.travis.yml
CHANGED
@@ -0,0 +1,67 @@
|
|
1
|
+
module Vx
|
2
|
+
module Builder
|
3
|
+
class ScriptBuilderV2
|
4
|
+
|
5
|
+
Base = Struct.new(:app) do
|
6
|
+
|
7
|
+
def do_cache_key(env)
|
8
|
+
yield env.cache_key
|
9
|
+
end
|
10
|
+
|
11
|
+
def do_cached_directories(env)
|
12
|
+
if env.source.cached_directories != false
|
13
|
+
yield env.source.cached_directories
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def do_script(env)
|
18
|
+
if env.source.script.empty? && !env.source.deploy_modules?
|
19
|
+
yield
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def do_install(env)
|
24
|
+
if env.source.install.empty?
|
25
|
+
yield
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def do_before_script(env)
|
30
|
+
if env.source.before_script.empty? && !deploy?(env)
|
31
|
+
yield
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def do_database(env)
|
36
|
+
if env.source.database.empty?
|
37
|
+
yield
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def do_deploy_script(env)
|
42
|
+
if deploy?(env)
|
43
|
+
yield
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def do_before_deploy(env)
|
48
|
+
if deploy?(env)
|
49
|
+
yield
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
def do_after_deploy(env)
|
54
|
+
if deploy?(env)
|
55
|
+
yield
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
def deploy?(env)
|
60
|
+
env.source.deploy_modules?
|
61
|
+
end
|
62
|
+
|
63
|
+
end
|
64
|
+
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
module Vx
|
2
|
+
module Builder
|
3
|
+
class ScriptBuilderV2
|
4
|
+
|
5
|
+
class Cache < Base
|
6
|
+
|
7
|
+
include Helper::Config
|
8
|
+
|
9
|
+
def call(env)
|
10
|
+
rs = app.call env
|
11
|
+
|
12
|
+
if env.task.cache_url_prefix && enabled?(env)
|
13
|
+
env.stage("init").add_task "cache_fetch", "url" => cache_fetch_urls(env)
|
14
|
+
env.stage("init").add_task "cache_add", "dir" => cache_directories(env)
|
15
|
+
env.stage("teardown").add_task "cache_push", "url" => cache_push_url(env)
|
16
|
+
end
|
17
|
+
|
18
|
+
rs
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
def enabled?(env)
|
24
|
+
env.source.cache.enabled? && cache_directories(env).any?
|
25
|
+
end
|
26
|
+
|
27
|
+
def cache_directories(env)
|
28
|
+
env.source.cache.directories
|
29
|
+
end
|
30
|
+
|
31
|
+
def cache_push_url(env)
|
32
|
+
url_for(env, env.task.branch)
|
33
|
+
end
|
34
|
+
|
35
|
+
def cache_fetch_urls(env)
|
36
|
+
urls = []
|
37
|
+
branch = env.task.branch
|
38
|
+
if branch != 'master'
|
39
|
+
urls << url_for(env, branch)
|
40
|
+
end
|
41
|
+
urls << url_for(env, 'master')
|
42
|
+
|
43
|
+
urls
|
44
|
+
end
|
45
|
+
|
46
|
+
def url_for(env, branch)
|
47
|
+
name = branch
|
48
|
+
|
49
|
+
key =
|
50
|
+
if env.cache_key.empty?
|
51
|
+
"cache"
|
52
|
+
else
|
53
|
+
env.cache_key.join("-").downcase.gsub(/[^a-z0-9_\-.]/, '-')
|
54
|
+
end
|
55
|
+
|
56
|
+
"#{env.task.cache_url_prefix}/#{name}/#{key}.tgz"
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module Vx
|
2
|
+
module Builder
|
3
|
+
class ScriptBuilderV2
|
4
|
+
|
5
|
+
class Clojure < Base
|
6
|
+
|
7
|
+
def call(env)
|
8
|
+
if enabled?(env)
|
9
|
+
env.stage("install").tap do |i|
|
10
|
+
do_install(env) do
|
11
|
+
i.add_task "shell", "lein version"
|
12
|
+
i.add_task "shell", "lein deps"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
env.stage("script").tap do |i|
|
17
|
+
do_script(env) do
|
18
|
+
i.add_task "shell", "lein test"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
app.call(env)
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
def enabled?(env)
|
29
|
+
env.source.language == 'clojure'
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'vx/common'
|
2
|
+
|
3
|
+
module Vx
|
4
|
+
module Builder
|
5
|
+
class ScriptBuilderV2
|
6
|
+
|
7
|
+
Clone = Struct.new(:app) do
|
8
|
+
|
9
|
+
def call(env)
|
10
|
+
|
11
|
+
env.stage("clone").tap do |e|
|
12
|
+
e.add_var "ssh_key", env.task.deploy_key
|
13
|
+
|
14
|
+
e.add_task "ssh_agent", "key" => "$ssh_key"
|
15
|
+
clone = {}
|
16
|
+
clone["repo"] = env.task.src
|
17
|
+
clone["dest"] = "~/#{env.task.name}"
|
18
|
+
clone["branch"] = branch_name(env)
|
19
|
+
clone["sha"] = env.task.sha
|
20
|
+
if pr = env.task.pull_request_id
|
21
|
+
clone["pr"] = pr
|
22
|
+
end
|
23
|
+
e.add_task "git_clone", clone
|
24
|
+
end
|
25
|
+
|
26
|
+
env.stage("init").chdir!("~/#{env.task.name}")
|
27
|
+
|
28
|
+
app.call(env)
|
29
|
+
end
|
30
|
+
|
31
|
+
private
|
32
|
+
|
33
|
+
def branch_name(env)
|
34
|
+
b = env.task && env.task.branch
|
35
|
+
if b && b != 'HEAD'
|
36
|
+
b
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module Vx
|
2
|
+
module Builder
|
3
|
+
class ScriptBuilderV2
|
4
|
+
|
5
|
+
class Defaults < Base
|
6
|
+
|
7
|
+
def call(env)
|
8
|
+
env.source.before_install.each do |c|
|
9
|
+
env.stage("before_install").tap do |i|
|
10
|
+
i.add_task "shell", c
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
env.source.install.each do |c|
|
15
|
+
env.stage("install").tap do |i|
|
16
|
+
i.add_task "shell", c
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
env.source.before_script.each do |c|
|
21
|
+
env.stage("before_script").tap do |i|
|
22
|
+
i.add_task "shell", c
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
env.source.script.each do |c|
|
27
|
+
env.stage("script").tap do |i|
|
28
|
+
i.add_task "shell", c
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
env.source.after_success.each do |c|
|
33
|
+
env.stage("after_success").tap do |i|
|
34
|
+
i.add_task "shell", c
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
app.call env
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module Vx
|
2
|
+
module Builder
|
3
|
+
class ScriptBuilderV2
|
4
|
+
|
5
|
+
class Deploy < Base
|
6
|
+
|
7
|
+
def call(env)
|
8
|
+
do_before_deploy(env) do
|
9
|
+
env.stage("before_script").tap do |i|
|
10
|
+
env.source.before_deploy.each do |c|
|
11
|
+
i.add_task "shell", c
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
do_deploy_script(env) do
|
17
|
+
env.stage("script").tap do |i|
|
18
|
+
env.source.deploy_modules.each do |m|
|
19
|
+
m.to_commands.each do |c|
|
20
|
+
i.add_task "shell", c
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
do_after_deploy(env) do
|
27
|
+
env.stage("after_success").tap do |i|
|
28
|
+
env.source.after_deploy.each do |c|
|
29
|
+
i.add_task "shell", c
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
app.call(env)
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
module Vx
|
2
|
+
module Builder
|
3
|
+
class ScriptBuilderV2
|
4
|
+
|
5
|
+
class Env < Base
|
6
|
+
|
7
|
+
def call(env)
|
8
|
+
env.stage("init").tap do |e|
|
9
|
+
e.add_env "CI", "1"
|
10
|
+
e.add_env "CI_JOB_ID", env.task.job_id
|
11
|
+
e.add_env "CI_JOB_NUMBER", env.task.job_number
|
12
|
+
e.add_env "CI_BUILD_ID", env.task.build_id
|
13
|
+
e.add_env "CI_BUILD_NUMBER", env.task.build_number
|
14
|
+
e.add_env "CI_PROJECT_NAME", env.task.name
|
15
|
+
e.add_env "CI_BUILD_SHA", env.task.sha
|
16
|
+
|
17
|
+
if env.task.project_token
|
18
|
+
e.add_env "CI_PROJECT_TOKEN", env.task.project_token, hidden: true
|
19
|
+
end
|
20
|
+
|
21
|
+
if env.task.pull_request_id
|
22
|
+
e.add_env "CI_PULL_REQUEST_ID", env.task.pull_request_id
|
23
|
+
end
|
24
|
+
|
25
|
+
if env.task.branch
|
26
|
+
e.add_env "CI_BRANCH", env.task.branch
|
27
|
+
end
|
28
|
+
|
29
|
+
e.add_env "DISPLAY", ":99"
|
30
|
+
|
31
|
+
if env.source.parallel?
|
32
|
+
e.add_env "CI_PARALLEL_JOBS", env.source.parallel
|
33
|
+
e.add_env "CI_PARALLEL_JOB_NUMBER", env.source.parallel_job_number
|
34
|
+
end
|
35
|
+
|
36
|
+
env.source.env.global.each do |i|
|
37
|
+
i = i.split("=")
|
38
|
+
key = i.shift
|
39
|
+
value = i.join("=").to_s
|
40
|
+
e.add_env key, normalize_env_value(value)
|
41
|
+
end
|
42
|
+
|
43
|
+
env.source.env.matrix.each do |i|
|
44
|
+
i = i.split("=")
|
45
|
+
key = i.shift
|
46
|
+
value = i.join("=").to_s
|
47
|
+
e.add_env key, normalize_env_value(value)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
app.call(env)
|
52
|
+
end
|
53
|
+
|
54
|
+
def normalize_env_value(value)
|
55
|
+
if value[0] == '"' && value[-1] == '"'
|
56
|
+
value[1..-2]
|
57
|
+
else
|
58
|
+
value
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
module Vx
|
2
|
+
module Builder
|
3
|
+
class ScriptBuilderV2
|
4
|
+
|
5
|
+
class Go < Base
|
6
|
+
|
7
|
+
DEFAULT_GO = '1.2'
|
8
|
+
|
9
|
+
def call(env)
|
10
|
+
if enabled?(env)
|
11
|
+
|
12
|
+
do_install(env) do
|
13
|
+
env.stage("before_install").tap do |i|
|
14
|
+
i.add_task "vxvm", "go #{go_version(env)}"
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
do_install(env) do
|
19
|
+
env.stage("install").tap do |i|
|
20
|
+
i.add_env 'GOPATH', '${HOME}/gopath:${GOPATH}'
|
21
|
+
i.add_env 'PATH', '${HOME}/gopath/bin:${PATH}'
|
22
|
+
i.add_env 'VX_ORIG_CODE_ROOT', '${PWD}'
|
23
|
+
i.add_env "VX_NEW_CODE_ROOT", "${HOME}/gopath/src/#{project_path env}"
|
24
|
+
|
25
|
+
i.add_task 'shell', 'mkdir -p $VX_NEW_CODE_ROOT'
|
26
|
+
i.add_task 'shell', 'rmdir $VX_NEW_CODE_ROOT'
|
27
|
+
i.add_task 'shell', 'cp -r $VX_ORIG_CODE_ROOT $VX_NEW_CODE_ROOT'
|
28
|
+
i.add_task 'chdir', '${VX_NEW_CODE_ROOT}'
|
29
|
+
|
30
|
+
i.add_task 'shell', 'go version'
|
31
|
+
i.add_task 'shell', 'go env'
|
32
|
+
i.add_task 'shell', 'go get -v ./...'
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
do_script(env) do
|
37
|
+
env.stage("script").tap do |i|
|
38
|
+
i.add_task 'shell', 'go test -v ./...'
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
|
44
|
+
app.call(env)
|
45
|
+
end
|
46
|
+
|
47
|
+
private
|
48
|
+
|
49
|
+
def project_path(env)
|
50
|
+
"#{env.task.project_host}/#{env.task.name}"
|
51
|
+
end
|
52
|
+
|
53
|
+
def enabled?(env)
|
54
|
+
env.source.language == 'go'
|
55
|
+
end
|
56
|
+
|
57
|
+
def go_version(env)
|
58
|
+
env.source.go.first || DEFAULT_GO
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
module Vx
|
2
|
+
module Builder
|
3
|
+
class ScriptBuilderV2
|
4
|
+
|
5
|
+
class Java < Base
|
6
|
+
|
7
|
+
def call(env)
|
8
|
+
if java(env)
|
9
|
+
=begin
|
10
|
+
do_cache_key(env) do |i|
|
11
|
+
i << "jdk-#{java env}"
|
12
|
+
end
|
13
|
+
|
14
|
+
env.stage("before_install").tap do |i|
|
15
|
+
end
|
16
|
+
|
17
|
+
do_before_install(env) do |i|
|
18
|
+
i << "source $(which jdk_switcher.sh)"
|
19
|
+
i << trace_sh_command("jdk_switcher use #{java env}")
|
20
|
+
end
|
21
|
+
=end
|
22
|
+
end
|
23
|
+
|
24
|
+
app.call(env)
|
25
|
+
end
|
26
|
+
|
27
|
+
private
|
28
|
+
|
29
|
+
def java(env)
|
30
|
+
env.source.jdk.first
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
module Vx
|
2
|
+
module Builder
|
3
|
+
class ScriptBuilderV2
|
4
|
+
|
5
|
+
class Nodejs < Base
|
6
|
+
|
7
|
+
DEFAULT_NODE = '0.10'
|
8
|
+
NPM_PACKAGES = 'node_modules'
|
9
|
+
BOWER_COMPONENTS = 'bower_components'
|
10
|
+
|
11
|
+
def call(env)
|
12
|
+
if enabled?(env)
|
13
|
+
|
14
|
+
do_cache_key(env) do |i|
|
15
|
+
i << "nodejs-#{node_version env}"
|
16
|
+
end
|
17
|
+
|
18
|
+
do_cached_directories(env) do |i|
|
19
|
+
i << NPM_PACKAGES
|
20
|
+
i << BOWER_COMPONENTS
|
21
|
+
end
|
22
|
+
|
23
|
+
do_install(env) do
|
24
|
+
env.stage("install").tap do |i|
|
25
|
+
i.add_env 'PATH', "${PATH}:${PWD}/#{NPM_PACKAGES}/bin"
|
26
|
+
|
27
|
+
i.add_task "vxvm", "nodejs #{node_version(env)}"
|
28
|
+
i.add_task "shell", 'npm config set spin false'
|
29
|
+
i.add_task 'shell', 'node --version'
|
30
|
+
i.add_task 'shell', 'npm --version'
|
31
|
+
i.add_task 'shell', 'npm install'
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
do_script(env) do
|
36
|
+
env.stage("script").tap do |i|
|
37
|
+
i.add_task 'shell', 'npm test'
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
app.call(env)
|
43
|
+
end
|
44
|
+
|
45
|
+
private
|
46
|
+
|
47
|
+
def enabled?(env)
|
48
|
+
env.source.node_js.first || env.source.language == 'node_js'
|
49
|
+
end
|
50
|
+
|
51
|
+
def node_version(env)
|
52
|
+
env.source.node_js.first || DEFAULT_NODE
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,69 @@
|
|
1
|
+
module Vx
|
2
|
+
module Builder
|
3
|
+
class ScriptBuilderV2
|
4
|
+
|
5
|
+
class Python < Base
|
6
|
+
|
7
|
+
DEFAULT_PYTHON = '2.7'
|
8
|
+
PIP_DOWNLOADS = "~/.pip-downloads"
|
9
|
+
PIP_OPTS = " --download-cache=#{PIP_DOWNLOADS}"
|
10
|
+
|
11
|
+
def call(env)
|
12
|
+
if enabled?(env)
|
13
|
+
|
14
|
+
py_version = python_version(env)
|
15
|
+
|
16
|
+
do_cache_key(env) do |i|
|
17
|
+
i << "python-#{py_version}"
|
18
|
+
end
|
19
|
+
|
20
|
+
do_cached_directories(env) do |i|
|
21
|
+
i << PIP_DOWNLOADS
|
22
|
+
end
|
23
|
+
|
24
|
+
env.stage("init").tap do |i|
|
25
|
+
i.add_env 'TRAVIS_PYTHON_VERSION', "py_version"
|
26
|
+
end
|
27
|
+
|
28
|
+
do_install(env) do
|
29
|
+
env.stage("install").tap do |i|
|
30
|
+
i.add_task "python", "action" => "install", "python" => DEFAULT_PYTHON
|
31
|
+
i.add_task "python", "virtualenv"
|
32
|
+
i.add_task "python", "announce"
|
33
|
+
|
34
|
+
i.add_task "python", "action" => "pip:install", "pip_args" => PIP_OPTS
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
do_before_script(env) do
|
39
|
+
env.stage("before_script").tap do |i|
|
40
|
+
i.add_task "python", "django:settings"
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
do_script(env) do
|
45
|
+
env.stage("script").tap do |i|
|
46
|
+
i.add_task "python", "script"
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
51
|
+
|
52
|
+
app.call(env)
|
53
|
+
end
|
54
|
+
|
55
|
+
private
|
56
|
+
|
57
|
+
def enabled?(env)
|
58
|
+
env.source.python.first || env.source.language == 'python'
|
59
|
+
end
|
60
|
+
|
61
|
+
def python_version(env)
|
62
|
+
v = env.source.python.first
|
63
|
+
v || DEFAULT_PYTHON
|
64
|
+
end
|
65
|
+
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|