This commit is contained in:
Sean Corfield 2022-08-14 10:47:52 -07:00
parent 00fb7437c0
commit 6ea7150326
6 changed files with 45 additions and 30 deletions

View file

@ -33,16 +33,19 @@ jobs:
run: docker-compose up -d run: docker-compose up -d
env: env:
MYSQL_ROOT_PASSWORD: testing MYSQL_ROOT_PASSWORD: testing
- name: Create ClojureTest - name: Run MariaDB Tests
run: ./run-tests.sh create run: clojure -X:test
env: env:
MYSQL_ROOT_PASSWORD: testing MYSQL_ROOT_PASSWORD: testing
- name: Run All Tests NEXT_JDBC_TEST_MYSQL: yes
run: ./run-tests.sh NEXT_JDBC_TEST_MARIADB: yes
env: - name: Run All Tests and Release
MYSQL_ROOT_PASSWORD: testing
- name: Run Tests
run: clojure -T:build ci :snapshot false run: clojure -T:build ci :snapshot false
env:
MYSQL_ROOT_PASSWORD: testing
NEXT_JDBC_TEST_MYSQL: yes
NEXT_JDBC_TEST_MSSQL: yes
MSSQL_SA_PASSWORD: Str0ngP4ssw0rd
- name: Deploy Release - name: Deploy Release
run: clojure -T:build deploy :snapshot false run: clojure -T:build deploy :snapshot false
env: env:

View file

@ -31,16 +31,19 @@ jobs:
run: docker-compose up -d run: docker-compose up -d
env: env:
MYSQL_ROOT_PASSWORD: testing MYSQL_ROOT_PASSWORD: testing
- name: Create ClojureTest - name: Run MariaDB Tests
run: ./run-tests.sh create run: clojure -X:test
env: env:
MYSQL_ROOT_PASSWORD: testing MYSQL_ROOT_PASSWORD: testing
- name: Run All Tests NEXT_JDBC_TEST_MYSQL: yes
run: ./run-tests.sh NEXT_JDBC_TEST_MARIADB: yes
env: - name: Run All Tests and Snapshot
MYSQL_ROOT_PASSWORD: testing
- name: Run Tests
run: clojure -T:build ci :snapshot true run: clojure -T:build ci :snapshot true
env:
MYSQL_ROOT_PASSWORD: testing
NEXT_JDBC_TEST_MYSQL: yes
NEXT_JDBC_TEST_MSSQL: yes
MSSQL_SA_PASSWORD: Str0ngP4ssw0rd
- name: Deploy Snapshot - name: Deploy Snapshot
run: clojure -T:build deploy :snapshot true run: clojure -T:build deploy :snapshot true
env: env:

View file

@ -31,14 +31,19 @@ jobs:
run: docker-compose up -d run: docker-compose up -d
env: env:
MYSQL_ROOT_PASSWORD: testing MYSQL_ROOT_PASSWORD: testing
- name: Create ClojureTest - name: Run MariaDB Tests
run: ./run-tests.sh create run: clojure -X:test
env: env:
MYSQL_ROOT_PASSWORD: testing MYSQL_ROOT_PASSWORD: testing
- name: Run Tests NEXT_JDBC_TEST_MYSQL: yes
run: ./run-tests.sh NEXT_JDBC_TEST_MARIADB: yes
- name: Run All Tests
run: clojure -X:test
env: env:
MYSQL_ROOT_PASSWORD: testing MYSQL_ROOT_PASSWORD: testing
NEXT_JDBC_TEST_MYSQL: yes
NEXT_JDBC_TEST_MSSQL: yes
MSSQL_SA_PASSWORD: Str0ngP4ssw0rd
build-graalvm-new: build-graalvm-new:
runs-on: ubuntu-latest runs-on: ubuntu-latest

View file

@ -4,6 +4,7 @@ Only accretive/fixative changes will be made from now on.
* 1.2.next in progress * 1.2.next in progress
* Address [#212](https://github.com/seancorfield/next-jdbc/issues/212) by documenting the problem with SQLite's JDBC driver. * Address [#212](https://github.com/seancorfield/next-jdbc/issues/212) by documenting the problem with SQLite's JDBC driver.
* Fix [#211](https://github.com/seancorfield/next-jdbc/issues/211) by auto-creating `clojure_test` DB in MySQL if needed; also streamline the CI processes.
* Fix [#210](https://github.com/seancorfield/next-jdbc/issues/210) by updating CI to test against MySQL and SQL Server. * Fix [#210](https://github.com/seancorfield/next-jdbc/issues/210) by updating CI to test against MySQL and SQL Server.
* Switch SQL Server testing setup to `docker-compose`. * Switch SQL Server testing setup to `docker-compose`.

View file

@ -1,8 +1,7 @@
#!/bin/sh #!/bin/sh
# start databases with: docker-compose up # start databases with: docker-compose up
# then: ./run-tests.sh create # then:
# - creates a new database in MySQL for running tests
# #
# test against "all" databases with MySQL JDBC driver: # test against "all" databases with MySQL JDBC driver:
# ./run-tests.sh # ./run-tests.sh
@ -10,12 +9,6 @@
# test against "all" databases with MariaDB JDBC driver: # test against "all" databases with MariaDB JDBC driver:
# ./run-tests.sh maria # ./run-tests.sh maria
if test "$1" = "create"
then
sleep 30
# assumes you already have a MySQL instance running locally
NEXT_JDBC_TEST_MYSQL=yes clojure -X:test next.jdbc.test-fixtures/create-clojure-test
fi
if test "$1" = "maria" if test "$1" = "maria"
then then
NEXT_JDBC_TEST_MSSQL=yes MSSQL_SA_PASSWORD=Str0ngP4ssw0rd \ NEXT_JDBC_TEST_MSSQL=yes MSSQL_SA_PASSWORD=Str0ngP4ssw0rd \

View file

@ -36,13 +36,21 @@
(def ^:private test-mysql (def ^:private test-mysql
(when (System/getenv "NEXT_JDBC_TEST_MYSQL") test-mysql-map)) (when (System/getenv "NEXT_JDBC_TEST_MYSQL") test-mysql-map))
(defn create-clojure-test [_] (defn- create-clojure-test []
(when test-mysql (when test-mysql
(let [mysql (assoc test-mysql :dbname "mysql")] (let [mysql (assoc test-mysql :dbname "mysql")]
(println "Creating clojure-test database in MySQL...") (println "Creating clojure-test database in MySQL...")
(jdbc/execute-one! mysql ["create database if not exists clojure_test"]) (loop [n 0]
(println "...done!") (when (try
(shutdown-agents)))) (jdbc/execute-one! mysql ["create database if not exists clojure_test"])
false ; done
(catch Throwable t
(when (< 10 n) (throw t))
(println "\t" (ex-message t) "(will retry)")
(Thread/sleep 3000)
true))
(recur (inc n))))
(println "...done!"))))
(def ^:private test-mssql-map (def ^:private test-mssql-map
{:dbtype "mssql" :dbname "model" {:dbtype "mssql" :dbname "model"
@ -226,6 +234,8 @@ CREATE PROCEDURE FRUITP" (cond (hsqldb?) "() READS SQL DATA DYNAMIC RESULT SETS
{:return-keys false}) {:return-keys false})
(t))))) (t)))))
(create-clojure-test)
(comment (comment
;; this is a convenience to bring next.jdbc's test dependencies ;; this is a convenience to bring next.jdbc's test dependencies
;; into any REPL that has the add-lib3 branch of tools.deps.alpha ;; into any REPL that has the add-lib3 branch of tools.deps.alpha