aboutsummaryrefslogtreecommitdiff
path: root/scripts/azure-pipelines/osx/configuration/Vagrantfile-vm.rb
blob: ed689ab7be1c17af79ece14bc6b7683036163746 (plain)
1
2
3
4
5
6
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
require 'json'

configuration = JSON.parse(File.read("#{__dir__}/vagrant-configuration.json"))

server = {
  :hostname => configuration['machine_name'],
  :box => configuration['box_name'],
  :box_version => configuration['box_version'],
  :ram => 12000,
  :cpu => 11
}

azure_agent_url = 'https://vstsagentpackage.azureedge.net/agent/2.185.1/vsts-agent-osx-x64-2.185.1.tar.gz'
devops_url = configuration['devops_url']
agent_pool = configuration['agent_pool']
pat = configuration['pat']

Vagrant.configure('2') do |config|
  config.vm.box = server[:box]
  config.vm.box_version = server[:box_version]
  config.vm.hostname = server[:hostname]
  config.vm.synced_folder '.', '/vagrant', disabled: true

  config.vm.provider 'parallels' do |prl|
    prl.memory = server[:ram]
    prl.cpus = server[:cpu]
  end

  config.vm.provision 'shell',
    run: 'once',
    name: 'Create the data directory',
    inline: "mkdir ~/Data",
    privileged: false

  config.vm.provision 'shell',
    run: 'once',
    name: 'Download azure agent',
    inline: "curl -s -o ~/Downloads/azure-agent.tar.gz #{azure_agent_url}",
    privileged: false

  config.vm.provision 'shell',
    run: 'once',
    name: 'Unpack azure agent',
    inline: 'mkdir myagent; cd myagent; tar xf ~/Downloads/azure-agent.tar.gz',
    privileged: false

  config.vm.provision 'shell',
    run: 'once',
    name: 'Add VM to azure agent pool',
    inline: "cd ~/myagent;\
      ./config.sh --unattended \
        --url #{devops_url} \
        --work ~/Data/work \
        --auth pat --token #{pat} \
        --pool #{agent_pool} \
        --agent `hostname` \
        --replace \
        --acceptTeeEula",
    privileged: false

  # Start listening for jobs
  config.vm.provision 'shell',
    run: 'always',
    name: 'Start running azure pipelines',
    inline: 'cd /Users/vagrant/myagent;\
      nohup ./run.sh&',
    privileged: false
end