Skip to content

Commit faab9a5

Browse files
committed
ci: stabilize Drone quality step
1 parent f2dbb58 commit faab9a5

2 files changed

Lines changed: 30 additions & 4 deletions

File tree

.drone.jsonnet

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ local nodeImage = 'node:26.2.0-slim';
5252
depends_on: ['assets-deps'],
5353
commands: [
5454
'apt-get update',
55-
'apt-get install -y --no-install-recommends build-essential ca-certificates curl git python3 ripgrep tar',
55+
'apt-get install -y --no-install-recommends build-essential ca-certificates curl git nodejs python3 ripgrep tar',
5656
'curl -fsSLO https://get.helm.sh/helm-' + helmVersion + '-linux-amd64.tar.gz',
5757
'curl -fsSLO https://get.helm.sh/helm-' + helmVersion + '-linux-amd64.tar.gz.sha256sum',
5858
'sha256sum -c helm-' + helmVersion + '-linux-amd64.tar.gz.sha256sum',

test/codex_pooler/mailer_test.exs

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -103,20 +103,20 @@ defmodule CodexPooler.MailerTest do
103103
end
104104

105105
test "send_smtp_test_email/2 sanitizes SMTP delivery failures" do
106-
port = free_port()
106+
port = start_closing_tcp_server!()
107107

108108
assert {:error, %{code: :smtp_test_email_connection_failed, message: message} = error} =
109109
Mailer.send_smtp_test_email("recipient@example.com", %{
110110
from: "instance-sender@example.com",
111111
adapter_config: [
112112
adapter: Swoosh.Adapters.SMTP,
113-
relay: "localhost",
113+
relay: "127.0.0.1",
114114
port: port,
115115
username: "username",
116116
password: "wrong-password",
117117
ssl: false,
118118
tls: :never,
119-
retries: 2
119+
retries: 0
120120
]
121121
})
122122

@@ -136,6 +136,32 @@ defmodule CodexPooler.MailerTest do
136136
end)
137137
end
138138

139+
defp start_closing_tcp_server! do
140+
{:ok, listener} = :gen_tcp.listen(0, [:binary, active: false, ip: {127, 0, 0, 1}])
141+
{:ok, port} = :inet.port(listener)
142+
test_pid = self()
143+
144+
pid =
145+
spawn_link(fn ->
146+
send(test_pid, {:closing_tcp_server_ready, self()})
147+
148+
with {:ok, socket} <- :gen_tcp.accept(listener) do
149+
:gen_tcp.close(socket)
150+
end
151+
152+
:gen_tcp.close(listener)
153+
end)
154+
155+
assert_receive {:closing_tcp_server_ready, ^pid}
156+
157+
on_exit(fn ->
158+
Process.exit(pid, :shutdown)
159+
:gen_tcp.close(listener)
160+
end)
161+
162+
port
163+
end
164+
139165
defp free_port do
140166
{:ok, socket} = :gen_tcp.listen(0, [:binary, active: false, reuseaddr: true])
141167
{:ok, port} = :inet.port(socket)

0 commit comments

Comments
 (0)