Skip to content

Commit

Permalink
Add GitHub Actions workflow file (#2)
Browse files Browse the repository at this point in the history
* Add GitHub Actions workflow file

* Remove warning when Explorer is not available
  • Loading branch information
Philip Sampaio authored Nov 11, 2024
1 parent f528489 commit 223ac4d
Show file tree
Hide file tree
Showing 2 changed files with 70 additions and 4 deletions.
58 changes: 58 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
name: "ReqCh CI"

on:
push:
branches:
- main
pull_request:
workflow_dispatch:

env:
MIX_ENV: test

jobs:
test:
services:
clickhouse:
image: clickhouse/clickhouse-server:24.10
ports:
- "8123:8123"
- "9000:9000"

strategy:
matrix:
include:
- otp_version: "25.3"
elixir_version: "1.14"

- otp_version: "27.1.2"
elixir_version: "1.17"

runs-on: ubuntu-latest
name: test
steps:
- uses: actions/checkout@v4

- uses: erlef/setup-beam@v1
with:
otp-version: ${{ matrix.otp_version }}
elixir-version: ${{ matrix.elixir_version }}

- run: mix deps.get
- run: mix deps.compile
- name: Run tests
run: mix test --warnings-as-errors

- name: Compile once again but without optional deps
run: mix compile --force --warnings-as-errors --no-optional-deps

format:
runs-on: ubuntu-latest
name: mix format
steps:
- uses: actions/checkout@v4
- uses: erlef/setup-beam@v1
with:
otp-version: "27.1.2"
elixir-version: "1.17"
- run: mix format --check-formatted
16 changes: 12 additions & 4 deletions lib/req_ch.ex
Original file line number Diff line number Diff line change
Expand Up @@ -154,14 +154,22 @@ defmodule ReqCh do
is_parquet_response = response.headers["x-clickhouse-format"] == ["Parquet"]

if want_explorer_df and is_parquet_response do
Req.Request.halt(request, %{
response
| body: Explorer.DataFrame.load_parquet!(response.body)
})
Req.Request.halt(request, %{response | body: load_parquet(response.body)})
else
pair
end
end

defp handle_clickhouse_result(request_response), do: request_response

if Code.ensure_loaded?(Explorer) do
defp load_parquet(body) do
Explorer.DataFrame.load_parquet!(body)
end
else
defp load_parquet(_body) do
raise ArgumentError,
"format: :explorer - you need to install Explorer as a dependency in order to use this format"
end
end
end

0 comments on commit 223ac4d

Please sign in to comment.