diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 000000000..25a7606b0 --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,82 @@ +# This config was automatically generated from your source code +# Stacks detected: deps:java:.,deps:node:maxkey-web-frontend/maxkey-web-app,tool:gradle: +version: 2.1 +orbs: + node: circleci/node@5 +jobs: + test-node: + # Install node dependencies and run tests + executor: node/default + working_directory: ~/project/maxkey-web-frontend/maxkey-web-app + steps: + - checkout: + path: ~/project + - node/install-packages: + pkg-manager: npm + - run: + name: Run tests + command: npm test --passWithNoTests + build-node: + # Build node project + executor: node/default + working_directory: ~/project/maxkey-web-frontend/maxkey-web-app + steps: + - checkout: + path: ~/project + - node/install-packages: + pkg-manager: npm + - run: + command: npm run build + - run: + name: Create the ~/artifacts directory if it doesn't exist + command: mkdir -p ~/artifacts + # Copy output to artifacts dir + - run: + name: Copy artifacts + command: cp -R build dist public .output .next .docusaurus ~/artifacts 2>/dev/null || true + - store_artifacts: + path: ~/artifacts + destination: node-build + test-java: + docker: + - image: cimg/openjdk:17.0 + steps: + - checkout + - run: + name: Calculate cache key + command: |- + find . -name 'pom.xml' -o -name 'gradlew*' -o -name '*.gradle*' | \ + sort | xargs cat > /tmp/CIRCLECI_CACHE_KEY + - restore_cache: + key: cache-{{ checksum "/tmp/CIRCLECI_CACHE_KEY" }} + - run: + command: ./gradlew check + - store_test_results: + path: build/test-results + - save_cache: + key: cache-{{ checksum "/tmp/CIRCLECI_CACHE_KEY" }} + paths: + - ~/.gradle/caches + - store_artifacts: + path: build/reports + deploy: + # This is an example deploy job, not actually used by the workflow + docker: + - image: cimg/base:stable + steps: + # Replace this with steps to deploy to users + - run: + name: deploy + command: '#e.g. ./deploy.sh' +workflows: + build-and-test: + jobs: + - test-node + - build-node: + requires: + - test-node + - test-java + - test-java + # - deploy: + # requires: + # - build-node