mirror of
https://github.com/penpot/penpot.git
synced 2025-12-23 22:48:40 -05:00
This upgrade also includes complete elimination of use spec from the backend codebase, completing the long running migration to fully use malli for validation and decoding.
215 lines
5.0 KiB
YAML
215 lines
5.0 KiB
YAML
version: 2.1
|
|
jobs:
|
|
test-common:
|
|
docker:
|
|
- image: penpotapp/devenv:latest
|
|
|
|
working_directory: ~/repo
|
|
resource_class: medium+
|
|
|
|
environment:
|
|
JAVA_OPTS: -Xmx4g -Xms100m -XX:+UseSerialGC
|
|
NODE_OPTIONS: --max-old-space-size=4096
|
|
|
|
steps:
|
|
- checkout
|
|
|
|
# Download and cache dependencies
|
|
- restore_cache:
|
|
keys:
|
|
- v1-dependencies-{{ checksum "common/deps.edn"}}
|
|
|
|
- run:
|
|
name: "fmt check & linter"
|
|
working_directory: "./common"
|
|
command: |
|
|
yarn install
|
|
yarn run fmt:clj:check
|
|
yarn run lint:clj
|
|
|
|
- run:
|
|
name: "JVM tests"
|
|
working_directory: "./common"
|
|
command: |
|
|
clojure -M:dev:test
|
|
|
|
- save_cache:
|
|
paths:
|
|
- ~/.m2
|
|
key: v1-dependencies-{{ checksum "common/deps.edn"}}
|
|
|
|
|
|
test-frontend:
|
|
docker:
|
|
- image: penpotapp/devenv:latest
|
|
|
|
working_directory: ~/repo
|
|
resource_class: medium+
|
|
|
|
environment:
|
|
JAVA_OPTS: -Xmx4g -Xms100m -XX:+UseSerialGC
|
|
NODE_OPTIONS: --max-old-space-size=4096
|
|
|
|
steps:
|
|
- checkout
|
|
|
|
# Download and cache dependencies
|
|
- restore_cache:
|
|
keys:
|
|
- v1-dependencies-{{ checksum "frontend/deps.edn"}}
|
|
|
|
- run:
|
|
name: "prepopulate linter cache"
|
|
working_directory: "./common"
|
|
command: |
|
|
yarn install
|
|
yarn run lint:clj
|
|
|
|
- run:
|
|
name: "fmt check & linter"
|
|
working_directory: "./frontend"
|
|
command: |
|
|
yarn install
|
|
yarn run fmt:clj:check
|
|
yarn run fmt:js:check
|
|
yarn run lint:scss
|
|
yarn run lint:clj
|
|
|
|
- run:
|
|
name: "unit tests"
|
|
working_directory: "./frontend"
|
|
command: |
|
|
yarn install
|
|
yarn run test
|
|
|
|
- save_cache:
|
|
paths:
|
|
- ~/.m2
|
|
key: v1-dependencies-{{ checksum "frontend/deps.edn"}}
|
|
|
|
|
|
test-integration:
|
|
docker:
|
|
- image: penpotapp/devenv:latest
|
|
|
|
working_directory: ~/repo
|
|
resource_class: large
|
|
|
|
environment:
|
|
JAVA_OPTS: -Xmx6g -Xms2g
|
|
NODE_OPTIONS: --max-old-space-size=4096
|
|
|
|
steps:
|
|
- checkout
|
|
|
|
# Download and cache dependencies
|
|
- restore_cache:
|
|
keys:
|
|
- v1-dependencies-{{ checksum "frontend/deps.edn"}}
|
|
|
|
- run:
|
|
name: "integration tests"
|
|
working_directory: "./frontend"
|
|
command: |
|
|
yarn install
|
|
yarn run build:app:assets
|
|
yarn run build:app
|
|
yarn run build:app:libs
|
|
yarn run playwright install --with-deps chromium
|
|
yarn run test:e2e -x --workers=4
|
|
|
|
test-backend:
|
|
docker:
|
|
- image: penpotapp/devenv:latest
|
|
- image: cimg/postgres:14.5
|
|
environment:
|
|
POSTGRES_USER: penpot_test
|
|
POSTGRES_PASSWORD: penpot_test
|
|
POSTGRES_DB: penpot_test
|
|
- image: cimg/redis:7.0.5
|
|
|
|
working_directory: ~/repo
|
|
resource_class: medium+
|
|
|
|
environment:
|
|
JAVA_OPTS: -Xmx4g -Xms100m -XX:+UseSerialGC
|
|
NODE_OPTIONS: --max-old-space-size=4096
|
|
|
|
steps:
|
|
- checkout
|
|
|
|
- restore_cache:
|
|
keys:
|
|
- v1-dependencies-{{ checksum "backend/deps.edn" }}
|
|
|
|
- run:
|
|
name: "prepopulate linter cache"
|
|
working_directory: "./common"
|
|
command: |
|
|
yarn install
|
|
yarn run lint:clj
|
|
|
|
- run:
|
|
name: "fmt check & linter"
|
|
working_directory: "./backend"
|
|
command: |
|
|
yarn install
|
|
yarn run fmt:clj:check
|
|
yarn run lint:clj
|
|
|
|
- run:
|
|
name: "tests"
|
|
working_directory: "./backend"
|
|
command: |
|
|
clojure -M:dev:test --reporter kaocha.report/documentation
|
|
|
|
environment:
|
|
PENPOT_TEST_DATABASE_URI: "postgresql://localhost/penpot_test"
|
|
PENPOT_TEST_DATABASE_USERNAME: penpot_test
|
|
PENPOT_TEST_DATABASE_PASSWORD: penpot_test
|
|
PENPOT_TEST_REDIS_URI: "redis://localhost/1"
|
|
|
|
- save_cache:
|
|
paths:
|
|
- ~/.m2
|
|
key: v1-dependencies-{{ checksum "backend/deps.edn" }}
|
|
|
|
|
|
test-exporter:
|
|
docker:
|
|
- image: penpotapp/devenv:latest
|
|
|
|
working_directory: ~/repo
|
|
resource_class: medium+
|
|
|
|
environment:
|
|
JAVA_OPTS: -Xmx4g -Xms100m -XX:+UseSerialGC
|
|
NODE_OPTIONS: --max-old-space-size=4096
|
|
|
|
steps:
|
|
- checkout
|
|
|
|
- run:
|
|
name: "prepopulate linter cache"
|
|
working_directory: "./common"
|
|
command: |
|
|
yarn install
|
|
yarn run lint:clj
|
|
|
|
- run:
|
|
name: "fmt check & linter"
|
|
working_directory: "./exporter"
|
|
command: |
|
|
yarn install
|
|
yarn run fmt:clj:check
|
|
yarn run lint:clj
|
|
|
|
workflows:
|
|
penpot:
|
|
jobs:
|
|
- test-frontend
|
|
- test-integration
|
|
- test-backend
|
|
- test-common
|
|
- test-exporter
|