diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 000000000..7a563faae --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,57 @@ +version: 2 +jobs: + build: + docker: + # specify the version you desire here + - image: penpotapp/devenv:latest + + # Specify service dependencies here if necessary + # CircleCI maintains a library of pre-built images + # documented at https://circleci.com/docs/2.0/circleci-images/ + # - image: circleci/postgres:9.4 + - image: circleci/postgres:13.1-ram + environment: + POSTGRES_USER: penpot_test + POSTGRES_PASSWORD: penpot_test + POSTGRES_DB: penpot + + - image: circleci/redis:6.0.8 + + working_directory: ~/repo + + environment: + # Customize the JVM maximum heap limit + JVM_OPTS: -Xmx512m + + steps: + - checkout + + # Download and cache dependencies + - restore_cache: + keys: + - v1-dependencies-{{ checksum "backend/deps.edn" }} + # fallback to using the latest cache if no exact match is found + - v1-dependencies- + + # run lint + - run: + working_directory: "./backend" + name: lint + command: "clj-kondo --lint src/" + + # run test + - run: + working_directory: "./backend" + name: test + command: "clojure -M:dev:tests" + environment: + PENPOT_DATABASE_URI: "postgresql://localhost/penpot" + PENPOT_DATABASE_USERNAME: penpot_test + PENPOT_DATABASE_PASSWORD: penpot_test + PENPOT_REDIS_URI: "redis://localhost/1" + + - save_cache: + paths: + - ~/.m2 + key: v1-dependencies-{{ checksum "backend/deps.edn" }} + diff --git a/backend/scripts/tests.sh b/backend/scripts/tests.sh new file mode 100755 index 000000000..4a5166496 --- /dev/null +++ b/backend/scripts/tests.sh @@ -0,0 +1,2 @@ +#!/usr/bin/env sh +exec clojure -M:dev:tests "$@" diff --git a/backend/src/app/config.clj b/backend/src/app/config.clj index 1f0f7912b..d1c0ce5f7 100644 --- a/backend/src/app/config.clj +++ b/backend/src/app/config.clj @@ -221,11 +221,11 @@ (defn- read-test-config [env] - (assoc (read-config env) - :redis-uri "redis://redis/1" - :database-uri "postgresql://postgres/penpot_test" - :storage-fs-directory "/tmp/app/storage" - :migrations-verbose false)) + (merge {:redis-uri "redis://redis/1" + :database-uri "postgresql://postgres/penpot_test" + :storage-fs-directory "/tmp/app/storage" + :migrations-verbose false} + (read-config env))) (def version (v/parse "%version%")) (def config (read-config env)) diff --git a/backend/tests/app/tests/helpers.clj b/backend/tests/app/tests/helpers.clj index 1f3f78d4b..3709b5465 100644 --- a/backend/tests/app/tests/helpers.clj +++ b/backend/tests/app/tests/helpers.clj @@ -77,8 +77,10 @@ (defn clean-storage [next] - (fs/delete (fs/path "/tmp/penpot")) - (next)) + (let [path (fs/path "/tmp/penpot")] + (when (fs/exists? path) + (fs/delete (fs/path "/tmp/penpot"))) + (next))) (defn serial [& funcs]