@@ -4,11 +4,20 @@ Set-StrictMode -Version 2.0
4
4
5
5
[Net.ServicePointManager ]::SecurityProtocol = [Net.ServicePointManager ]::SecurityProtocol -bor ' Tls12'
6
6
7
- Write-Host ' [INFO] Removing all existing versions of Erlang...'
8
- Get-ChildItem - Path ' C:\Program Files\erl*\Uninstall.exe' | % { Start-Process - Wait - NoNewWindow - FilePath $_ - ArgumentList ' /S' }
7
+ $versions_path = Join-Path - Path $env: GITHUB_WORKSPACE - ChildPath ' tools' | Join-Path - ChildPath ' versions.json'
8
+ $versions = Get-Content $versions_path | ConvertFrom-Json
9
+ Write-Host " [INFO] versions: $versions "
10
+ $erlang_ver = $versions.erlang
11
+ $rabbitmq_ver = $versions.rabbitmq
12
+
13
+ $base_installers_dir = Join-Path - Path $HOME - ChildPath ' installers'
14
+ if (-Not (Test-Path $base_installers_dir ))
15
+ {
16
+ New-Item - Verbose - ItemType Directory $base_installers_dir
17
+ }
9
18
10
- $erlang_download_url = ' https://github.com/erlang/otp/releases/download/OTP-24.2.1/otp_win64_24.2.1. exe'
11
- $erlang_installer_path = Join-Path - Path $HOME - ChildPath ' otp_win64_24.2.1. exe'
19
+ $erlang_download_url = " https://github.com/erlang/otp/releases/download/OTP-$erlang_ver /otp_win64_ $erlang_ver . exe"
20
+ $erlang_installer_path = Join-Path - Path $base_installers_dir - ChildPath " otp_win64_ $erlang_ver . exe"
12
21
$erlang_install_dir = Join-Path - Path $HOME - ChildPath ' erlang'
13
22
14
23
Write-Host ' [INFO] Downloading Erlang...'
@@ -19,14 +28,14 @@ if (-Not (Test-Path $erlang_installer_path))
19
28
}
20
29
else
21
30
{
22
- Write-Host " [INFO] Found" $erlang_installer_path " in cache. "
31
+ Write-Host " [INFO] Found ' $erlang_installer_path ' in cache! "
23
32
}
24
33
25
34
Write-Host " [INFO] Installing Erlang to $erlang_install_dir ..."
26
35
& $erlang_installer_path ' /S' " /D=$erlang_install_dir " | Out-Null
27
36
28
- $rabbitmq_installer_download_url = ' https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.9.13 /rabbitmq-server-3.9.13. exe'
29
- $rabbitmq_installer_path = Join-Path - Path $HOME - ChildPath ' rabbitmq-server-3.9.13. exe'
37
+ $rabbitmq_installer_download_url = " https://github.com/rabbitmq/rabbitmq-server/releases/download/v $rabbitmq_ver /rabbitmq-server-$rabbitmq_ver . exe"
38
+ $rabbitmq_installer_path = Join-Path - Path $base_installers_dir - ChildPath " rabbitmq-server-$rabbitmq_ver . exe"
30
39
31
40
$erlang_reg_path = ' HKLM:\SOFTWARE\Ericsson\Erlang'
32
41
if (Test-Path ' HKLM:\SOFTWARE\WOW6432Node\' )
@@ -36,22 +45,29 @@ if (Test-Path 'HKLM:\SOFTWARE\WOW6432Node\')
36
45
$erlang_erts_version = Get-ChildItem - Path $erlang_reg_path - Name
37
46
$erlang_home = (Get-ItemProperty - LiteralPath $erlang_reg_path \$erlang_erts_version ).' (default)'
38
47
39
- Write-Host " [INFO] Setting ERLANG_HOME to $erlang_home "
48
+ Write-Host " [INFO] Setting ERLANG_HOME to ' $erlang_home '... "
40
49
$env: ERLANG_HOME = $erlang_home
41
50
[Environment ]::SetEnvironmentVariable(' ERLANG_HOME' , $erlang_home , ' Machine' )
42
51
43
- Write-Host ' [INFO] Downloading RabbitMQ'
52
+ Write-Host " [INFO] Setting RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS..."
53
+ $env: RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS = ' -rabbitmq_stream advertised_host localhost'
54
+ [Environment ]::SetEnvironmentVariable(' RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS' , ' -rabbitmq_stream advertised_host localhost' , ' Machine' )
55
+
56
+ Write-Host ' [INFO] Downloading RabbitMQ...'
44
57
45
58
if (-Not (Test-Path $rabbitmq_installer_path ))
46
59
{
47
60
Invoke-WebRequest - UseBasicParsing - Uri $rabbitmq_installer_download_url - OutFile $rabbitmq_installer_path
48
61
}
49
62
else
50
63
{
51
- Write-Host " [INFO] Found $rabbitmq_installer_path in cache. "
64
+ Write-Host " [INFO] Found ' $rabbitmq_installer_path ' in cache! "
52
65
}
53
66
54
- Write-Host ' [INFO] Creating Erlang cookie files'
67
+ Write-Host " [INFO] Installer dir '$base_installers_dir ' contents:"
68
+ Get-ChildItem - Verbose - Path $base_installers_dir
69
+
70
+ Write-Host ' [INFO] Creating Erlang cookie files...'
55
71
56
72
function Set-ErlangCookie {
57
73
Param ($Path , $Value = ' RABBITMQ-COOKIE' )
@@ -65,7 +81,7 @@ $erlang_cookie_system = Join-Path -Path $env:SystemRoot -ChildPath 'System32\con
65
81
Set-ErlangCookie - Path $erlang_cookie_user
66
82
Set-ErlangCookie - Path $erlang_cookie_system
67
83
68
- Write-Host ' [INFO] Installing and starting RabbitMQ with default config'
84
+ Write-Host ' [INFO] Installing and starting RabbitMQ with default config... '
69
85
70
86
& $rabbitmq_installer_path ' /S' | Out-Null
71
87
(Get-Service - Name RabbitMQ).Status
@@ -79,35 +95,36 @@ $rabbitmq_base_path = Split-Path -Parent (Get-ItemProperty $regPath 'UninstallSt
79
95
$rabbitmq_version = (Get-ItemProperty $regPath " DisplayVersion" ).DisplayVersion
80
96
81
97
$rabbitmq_home = Join-Path - Path $rabbitmq_base_path - ChildPath " rabbitmq_server-$rabbitmq_version "
82
- Write-Host " [INFO] Setting RABBITMQ_HOME to $rabbitmq_home "
98
+ Write-Host " [INFO] Setting RABBITMQ_HOME to ' $rabbitmq_home '... "
83
99
[Environment ]::SetEnvironmentVariable(' RABBITMQ_HOME' , $rabbitmq_home , ' Machine' )
84
100
$env: RABBITMQ_HOME = $rabbitmq_home
85
101
86
102
$rabbitmqctl_path = Join-Path - Path $rabbitmq_base_path - ChildPath " rabbitmq_server-$rabbitmq_version " | Join-Path - ChildPath ' sbin' | Join-Path - ChildPath ' rabbitmqctl.bat'
103
+ $rabbitmq_plugins_path = Join-Path - Path $rabbitmq_base_path - ChildPath " rabbitmq_server-$rabbitmq_version " | Join-Path - ChildPath ' sbin' | Join-Path - ChildPath ' rabbitmq-plugins.bat'
87
104
88
- [Environment ]::SetEnvironmentVariable(' RABBITMQ_RABBITMQCTL_PATH' , $rabbitmqctl_path , ' Machine' )
89
- Write-Host " [INFO] Setting RABBITMQ_RABBITMQCTL_PATH to $rabbitmqctl_path "
105
+ Write-Host " [INFO] Setting RABBITMQ_RABBITMQCTL_PATH to '$rabbitmqctl_path '..."
90
106
$env: RABBITMQ_RABBITMQCTL_PATH = $rabbitmqctl_path
107
+ [Environment ]::SetEnvironmentVariable(' RABBITMQ_RABBITMQCTL_PATH' , $rabbitmqctl_path , ' Machine' )
91
108
92
109
$epmd_running = $false
93
110
[int ]$count = 1
94
111
95
112
$epmd_exe = Join-Path - Path $erlang_home - ChildPath " erts-$erlang_erts_version " | Join-Path - ChildPath ' bin' | Join-Path - ChildPath ' epmd.exe'
96
113
97
- Write-Host " [INFO] Waiting for epmd ($epmd_exe ) to report that RabbitMQ has started"
114
+ Write-Host " [INFO] Waiting for epmd ($epmd_exe ) to report that RabbitMQ has started... "
98
115
99
116
Do {
100
117
$epmd_running = & $epmd_exe - names | Select-String - CaseSensitive - SimpleMatch - Quiet - Pattern ' name rabbit at port'
101
118
if ($epmd_running -eq $true ) {
102
- Write-Host ' [INFO] epmd reports that RabbitMQ is running'
119
+ Write-Host ' [INFO] epmd reports that RabbitMQ is running! '
103
120
break
104
121
}
105
122
106
123
if ($count -gt 60 ) {
107
- throw ' [ERROR] too many tries waiting for epmd to report RabbitMQ running'
124
+ throw ' [ERROR] too many tries waiting for epmd to report RabbitMQ running! '
108
125
}
109
126
110
- Write-Host " [INFO] epmd NOT reporting yet that RabbitMQ is running, count: $count "
127
+ Write-Host " [INFO] epmd NOT reporting yet that RabbitMQ is running, count: ' $count '... "
111
128
$count = $count + 1
112
129
Start-Sleep - Seconds 5
113
130
@@ -126,16 +143,19 @@ Do {
126
143
}
127
144
128
145
if ($count -gt 120 ) {
129
- throw ' [ERROR] too many tries waiting for just one erl process to be running'
146
+ throw ' [ERROR] too many tries waiting for just one erl process to be running! '
130
147
}
131
148
132
- Write-Host ' [INFO] multiple erl instances running still'
149
+ Write-Host ' [INFO] multiple erl instances running still... '
133
150
$count = $count + 1
134
151
Start-Sleep - Seconds 5
135
152
136
153
} While ($true )
137
154
138
155
$ErrorActionPreference = ' Continue'
139
- Write-Host ' [INFO] Getting RabbitMQ status in 5 seconds...'
140
- Start-Sleep - Seconds 5
156
+ Write-Host ' [INFO] Getting RabbitMQ status...'
141
157
& $rabbitmqctl_path status
158
+
159
+ $ErrorActionPreference = ' Continue'
160
+ Write-Host ' [INFO] Enabling plugins...'
161
+ & $rabbitmq_plugins_path enable rabbitmq_management rabbitmq_stream rabbitmq_stream_management
0 commit comments