Skip to content

Commit bbc6262

Browse files
authored
Merge pull request #165 from phoenixframework/sd-gitlab-ci
add gitlab ci
2 parents f2fdba5 + 9c6b6a4 commit bbc6262

File tree

4 files changed

+81
-30
lines changed

4 files changed

+81
-30
lines changed

.github/workflows/ci.yml

+49
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
name: Tests
2+
3+
on:
4+
push:
5+
pull_request:
6+
branches:
7+
- main
8+
9+
jobs:
10+
tests:
11+
name: Run tests (${{ matrix.image }})
12+
13+
strategy:
14+
fail-fast: false
15+
matrix:
16+
include:
17+
- image: 1.11.4-erlang-21.3.8.24-debian-buster-20240513-slim
18+
- image: 1.17.2-erlang-27.0.1-debian-bookworm-20240701-slim
19+
20+
runs-on: ubuntu-latest
21+
container:
22+
image: hexpm/elixir:${{ matrix.image }}
23+
24+
steps:
25+
- name: Install inotify-tools
26+
run: apt update && apt -y install inotify-tools
27+
28+
- name: Checkout
29+
uses: actions/checkout@v4
30+
31+
- name: Hex and Rebar setup
32+
run: |
33+
mix local.hex --force
34+
mix local.rebar --force
35+
36+
- name: Restore deps and _build cache
37+
uses: actions/cache@v4
38+
with:
39+
path: |
40+
deps
41+
_build
42+
key: deps-${{ runner.os }}-${{ matrix.image }}-${{ hashFiles('**/mix.lock') }}
43+
restore-keys: |
44+
deps-${{ runner.os }}-${{ matrix.image }}
45+
- name: Install dependencies
46+
run: mix deps.get --only test
47+
48+
- name: Run tests
49+
run: mix test

test/channel_test.exs

+24-20
Original file line numberDiff line numberDiff line change
@@ -108,33 +108,37 @@ defmodule Phoenix.LiveReloader.ChannelTest do
108108
end
109109

110110
@endpoint MyApp.LogEndpoint
111-
test "sends logs for web console only when enabled" do
112-
System.delete_env("PLUG_EDITOR")
113-
114-
update_live_reload_env(@endpoint, fn conf ->
115-
Keyword.drop(conf, [:web_console_logger])
116-
end)
111+
# web console logger relies on Logger.default_formatter/0
112+
# which is only available since Elixir v1.15
113+
if Version.match?(System.version(), ">= 1.15.0") do
114+
test "sends logs for web console only when enabled" do
115+
System.delete_env("PLUG_EDITOR")
116+
117+
update_live_reload_env(@endpoint, fn conf ->
118+
Keyword.drop(conf, [:web_console_logger])
119+
end)
117120

118-
{:ok, info, _socket} =
119-
LiveReloader.Socket |> socket() |> subscribe_and_join(Channel, "phoenix:live_reload", %{})
121+
{:ok, info, _socket} =
122+
LiveReloader.Socket |> socket() |> subscribe_and_join(Channel, "phoenix:live_reload", %{})
120123

121-
assert info == %{}
122-
Logger.info("hello")
124+
assert info == %{}
125+
Logger.info("hello")
123126

124-
refute_receive _
127+
refute_receive _
125128

126-
update_live_reload_env(@endpoint, fn conf ->
127-
Keyword.merge(conf, web_console_logger: true)
128-
end)
129+
update_live_reload_env(@endpoint, fn conf ->
130+
Keyword.merge(conf, web_console_logger: true)
131+
end)
129132

130-
{:ok, info, _socket} =
131-
LiveReloader.Socket |> socket() |> subscribe_and_join(Channel, "phoenix:live_reload", %{})
133+
{:ok, info, _socket} =
134+
LiveReloader.Socket |> socket() |> subscribe_and_join(Channel, "phoenix:live_reload", %{})
132135

133-
assert info == %{}
136+
assert info == %{}
134137

135-
Logger.info("hello again")
136-
assert_receive %Phoenix.Socket.Message{event: "log", payload: %{msg: msg, level: "info"}}
137-
assert msg =~ "hello again"
138+
Logger.info("hello again")
139+
assert_receive %Phoenix.Socket.Message{event: "log", payload: %{msg: msg, level: "info"}}
140+
assert msg =~ "hello again"
141+
end
138142
end
139143

140144
test "sends editor_url and relative_path only when configurd" do

test/live_reloader_test.exs

+4-4
Original file line numberDiff line numberDiff line change
@@ -141,12 +141,12 @@ defmodule Phoenix.LiveReloaderTest do
141141
|> Phoenix.LiveReloader.call(opts)
142142
|> send_resp(200, [
143143
"<html>",
144-
'<bo',
144+
~c"<bo",
145145
[?d, ?y | ">"],
146146
"<h1>Phoenix</h1>",
147147
"</b",
148148
?o,
149-
'dy>',
149+
~c"dy>",
150150
"</html>"
151151
])
152152

@@ -161,7 +161,7 @@ defmodule Phoenix.LiveReloaderTest do
161161
|> Phoenix.LiveReloader.call([])
162162

163163
assert to_string(conn.resp_body) =~
164-
~s[var targetWindow = "parent";\n]
164+
~s[var targetWindow = "parent";\n]
165165
end
166166

167167
test "wrong window target defaults to top" do
@@ -171,6 +171,6 @@ defmodule Phoenix.LiveReloaderTest do
171171
|> Phoenix.LiveReloader.call([])
172172

173173
assert to_string(conn.resp_body) =~
174-
~s[var targetWindow = "top";\n]
174+
~s[var targetWindow = "top";\n]
175175
end
176176
end

test/test_helper.exs

+4-6
Original file line numberDiff line numberDiff line change
@@ -34,14 +34,14 @@ Application.put_env(:phoenix_live_reload, MyApp.EndpointConfig,
3434
Application.put_env(:phoenix_live_reload, MyApp.EndpointParentWindow,
3535
pubsub_server: MyApp.PubSub,
3636
live_reload: [
37-
target_window: :parent,
37+
target_window: :parent
3838
]
3939
)
4040

4141
Application.put_env(:phoenix_live_reload, MyApp.EndpointWrongWindow,
4242
pubsub_server: MyApp.PubSub,
4343
live_reload: [
44-
target_window: "other",
44+
target_window: "other"
4545
]
4646
)
4747

@@ -54,7 +54,7 @@ Application.put_env(:phoenix_live_reload, MyApp.ReloadEndpoint,
5454
~r"priv/gettext/.*(po)$",
5555
~r{web/views/.*(ex)$},
5656
~r{web/templates/.*(eex)$}
57-
],
57+
],
5858
notify: [
5959
live_view: [
6060
~r{web/components.ex$},
@@ -64,9 +64,7 @@ Application.put_env(:phoenix_live_reload, MyApp.ReloadEndpoint,
6464
]
6565
)
6666

67-
Application.put_env(:phoenix_live_reload, MyApp.LogEndpoint,
68-
pubsub_server: MyApp.PubSub
69-
)
67+
Application.put_env(:phoenix_live_reload, MyApp.LogEndpoint, pubsub_server: MyApp.PubSub)
7068

7169
defmodule MyApp.Endpoint do
7270
use Phoenix.Endpoint, otp_app: :phoenix_live_reload

0 commit comments

Comments
 (0)