Class: Vx::Builder::ScriptBuilderV2::Env

Inherits:
Base
  • Object
show all
Defined in:
lib/vx/builder/script_builder_v2/env.rb

Instance Attribute Summary

Attributes inherited from Base

#app

Instance Method Summary collapse

Methods inherited from Base

#deploy?, #do_after_deploy, #do_before_deploy, #do_before_script, #do_cache_key, #do_cached_directories, #do_database, #do_deploy_script, #do_install, #do_script

Instance Method Details

#call(env) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/vx/builder/script_builder_v2/env.rb', line 7

def call(env)
  env.stage("init").tap do |e|
    e.add_env "CI",                 "1"
    e.add_env "CI_JOB_ID",          env.task.job_id
    e.add_env "CI_JOB_NUMBER",      env.task.job_number
    e.add_env "CI_BUILD_ID",        env.task.build_id
    e.add_env "CI_BUILD_NUMBER",    env.task.build_number
    e.add_env "CI_PROJECT_NAME",    env.task.name
    e.add_env "CI_BUILD_SHA",       env.task.sha

    env.task.tap do |t|
      t.env_vars.each do |key, value|
        e.add_env key, Shellwords.escape(value), hidden: true
      end
    end

    if env.task.project_token
      e.add_env "CI_PROJECT_TOKEN", env.task.project_token, hidden: true
    end

    if env.task.pull_request_id
      e.add_env "CI_PULL_REQUEST_ID", env.task.pull_request_id
    end

    if env.task.branch
      e.add_env "CI_BRANCH", env.task.branch
    end

    e.add_env "DISPLAY", ":99"

    if env.source.parallel?
      e.add_env "CI_PARALLEL_JOBS", env.source.parallel
      e.add_env "CI_PARALLEL_JOB_NUMBER", env.source.parallel_job_number
    end

    add_var = ->(var) {
      var = var.split("=")
      key = var.shift
      value = var.join("=").to_s
      e.add_env key, value
    }

    env.source.env.global.each &add_var
    env.source.env.matrix.each &add_var
  end

  app.call(env)
end