Skip to content

Commit f88932c

Browse files
authored
Merge pull request #4 from J0hnG4lt/feat/add-github-action-and-use-deps-edn
feat: add github action and use deps.end
2 parents 725393f + e1ad4d3 commit f88932c

File tree

6 files changed

+110
-4
lines changed

6 files changed

+110
-4
lines changed

.github/workflows/build.yaml

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
name: Build Metabase arrow-flight-sql Driver
2+
3+
on:
4+
push:
5+
branches: [ main ]
6+
pull_request:
7+
workflow_dispatch:
8+
9+
jobs:
10+
build:
11+
runs-on: ubuntu-latest
12+
13+
steps:
14+
- name: Clone Metabase repository
15+
uses: actions/checkout@v4
16+
with:
17+
repository: metabase/metabase
18+
path: metabase
19+
20+
- name: Checkout driver code
21+
uses: actions/checkout@v4
22+
with:
23+
path: metabase/modules/drivers/arrow-flight-sql
24+
25+
- name: List driver files for debugging
26+
run: |
27+
echo "Listing contents of metabase/modules/drivers/arrow-flight-sql:"
28+
ls -R metabase/modules/drivers/
29+
ls -R metabase/modules/drivers/arrow-flight-sql
30+
31+
- name: Register arrow-flight-sql in deps.edn
32+
working-directory: ./metabase
33+
run: |
34+
cp modules/drivers/arrow-flight-sql/ci/deps.edn modules/drivers/deps.edn
35+
echo "--- Verifying modules/drivers/deps.edn content ---"
36+
cat modules/drivers/deps.edn
37+
echo "----------------------------------------------------"
38+
39+
40+
- name: Set up JDK 21
41+
uses: actions/setup-java@v4
42+
with:
43+
distribution: 'temurin'
44+
java-version: '21'
45+
46+
- name: Set up Node.js
47+
uses: actions/setup-node@v4
48+
with:
49+
node-version: 'lts/*'
50+
51+
- name: Install Yarn 1.x
52+
run: |
53+
npm install -g yarn@1
54+
yarn --version
55+
56+
- name: Set up Clojure
57+
uses: DeLaGuardo/setup-clojure@12.3
58+
with:
59+
cli: latest
60+
61+
- name: Build driver
62+
working-directory: ./metabase
63+
run: |
64+
chmod +x ./bin/build-driver.sh
65+
./bin/build-driver.sh arrow-flight-sql
66+
67+
- name: Upload driver artifact
68+
uses: actions/upload-artifact@v4
69+
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
70+
with:
71+
name: metabase-arrow-flight-sql-driver
72+
path: metabase/resources/modules/arrow-flight-sql.metabase-driver.jar
73+
if-no-files-found: error

ci/deps.edn

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
{
2+
;; we have to copy over the Maven repos used for the Athena and Redshift drivers to here as well -- this is
3+
;; apparently done on purpose, as a security thing. See
4+
;; https://ask.clojure.org/index.php/10726/deps-manifest-dependencies-respect-repos-dependent-project
5+
:mvn/repos
6+
{"metabase-maven-downloads" {:url "https://s3.amazonaws.com/metabase-maven-downloads"}
7+
"redshift" {:url "https://s3.amazonaws.com/redshift-maven-repository/release"}}
8+
9+
:deps
10+
{metabase/athena {:local/root "athena"}
11+
metabase/bigquery-cloud-sdk {:local/root "bigquery-cloud-sdk"}
12+
metabase/clickhouse {:local/root "clickhouse"}
13+
metabase/databricks {:local/root "databricks"}
14+
metabase/druid {:local/root "druid"}
15+
metabase/druid-jdbc {:local/root "druid-jdbc"}
16+
metabase/hive-like {:local/root "hive-like"}
17+
metabase/mongo {:local/root "mongo"}
18+
metabase/oracle {:local/root "oracle"}
19+
metabase/presto-jdbc {:local/root "presto-jdbc"}
20+
metabase/redshift {:local/root "redshift"}
21+
metabase/snowflake {:local/root "snowflake"}
22+
metabase/sparksql {:local/root "sparksql"}
23+
metabase/sqlite {:local/root "sqlite"}
24+
metabase/sqlserver {:local/root "sqlserver"}
25+
metabase/starburst {:local/root "starburst"}
26+
metabase/vertica {:local/root "vertica"}
27+
metabase/arrow-flight-sql {:local/root "arrow-flight-sql"}}}

deps.edn

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{:paths ["src" "resources"]
2+
3+
:deps {org.clojure/clojure {:mvn/version "1.11.1"}
4+
org.apache.arrow/flight-sql-jdbc-driver {:mvn/version "18.2.0"}}
5+
6+
}

project.clj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@
55
:url "https://www.apache.org/licenses/LICENSE-2.0"}
66
:dependencies [[org.clojure/clojure "1.11.1"]
77
[org.apache.arrow/flight-sql-jdbc-driver "18.2.0"]]
8-
:repl-options {:init-ns metabase.driver.flightsql})
8+
:repl-options {:init-ns metabase.driver.arrow-flight-sql})

resources/metabase-plugin.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,6 @@ driver:
3636

3737
init:
3838
- step: load-namespace
39-
namespace: metabase.driver.flightsql
39+
namespace: metabase.driver.arrow-flight-sql
4040
- step: register-jdbc-driver
4141
class: org.apache.arrow.driver.jdbc.ArrowFlightJdbcDriver
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
(ns metabase.driver.flightsql
1+
(ns metabase.driver.arrow-flight-sql
22
"Arrow Flight SQL Driver for Metabase.
33
44
This driver uses the Apache Arrow Flight SQL JDBC driver.
@@ -329,7 +329,7 @@
329329
(.setTimestamp stmt idx (Timestamp/valueOf dt)))
330330

331331
(defmethod sql-jdbc.execute/set-parameter
332-
[:arrowflightsql OffsetDateTime]
332+
[:arrow-flight-sql OffsetDateTime]
333333
[_driver ^PreparedStatement stmt ^Integer idx ^OffsetDateTime odt]
334334
;; convert OffsetDateTime → Timestamp at the same instant
335335
(.setTimestamp stmt

0 commit comments

Comments
 (0)