]>
Commit | Line | Data |
---|---|---|
1 | require 'json' | |
2 | ||
3 | configuration = JSON.parse(File.read("#{__dir__}/vagrant-configuration.json")) | |
4 | ||
5 | server = { | |
6 | :hostname => configuration['machine_name'], | |
7 | :box => configuration['box_name'], | |
8 | :box_version => configuration['box_version'], | |
9 | :ram => 12000, | |
10 | :cpu => 11 | |
11 | } | |
12 | ||
13 | azure_agent_url = 'https://vstsagentpackage.azureedge.net/agent/2.185.1/vsts-agent-osx-x64-2.185.1.tar.gz' | |
14 | devops_url = configuration['devops_url'] | |
15 | agent_pool = configuration['agent_pool'] | |
16 | pat = configuration['pat'] | |
17 | ||
18 | Vagrant.configure('2') do |config| | |
19 | config.vm.box = server[:box] | |
20 | config.vm.box_version = server[:box_version] | |
21 | config.vm.hostname = server[:hostname] | |
22 | config.vm.synced_folder '.', '/vagrant', disabled: true | |
23 | ||
24 | config.vm.provider 'parallels' do |prl| | |
25 | prl.memory = server[:ram] | |
26 | prl.cpus = server[:cpu] | |
27 | end | |
28 | ||
29 | config.vm.provision 'shell', | |
30 | run: 'once', | |
31 | name: 'Create the data directory', | |
32 | inline: "mkdir ~/Data", | |
33 | privileged: false | |
34 | ||
35 | config.vm.provision 'shell', | |
36 | run: 'once', | |
37 | name: 'Download azure agent', | |
38 | inline: "curl -s -o ~/Downloads/azure-agent.tar.gz #{azure_agent_url}", | |
39 | privileged: false | |
40 | ||
41 | config.vm.provision 'shell', | |
42 | run: 'once', | |
43 | name: 'Unpack azure agent', | |
44 | inline: 'mkdir myagent; cd myagent; tar xf ~/Downloads/azure-agent.tar.gz', | |
45 | privileged: false | |
46 | ||
47 | config.vm.provision 'shell', | |
48 | run: 'once', | |
49 | name: 'Add VM to azure agent pool', | |
50 | inline: "cd ~/myagent;\ | |
51 | ./config.sh --unattended \ | |
52 | --url #{devops_url} \ | |
53 | --work ~/Data/work \ | |
54 | --auth pat --token #{pat} \ | |
55 | --pool #{agent_pool} \ | |
56 | --agent `hostname` \ | |
57 | --replace \ | |
58 | --acceptTeeEula", | |
59 | privileged: false | |
60 | ||
61 | # Start listening for jobs | |
62 | config.vm.provision 'shell', | |
63 | run: 'always', | |
64 | name: 'Start running azure pipelines', | |
65 | inline: 'cd /Users/vagrant/myagent;\ | |
66 | nohup ./run.sh&', | |
67 | privileged: false | |
68 | end |