aliases: # Workflow filters - &filter-not-release-or-master tags: ignore: /^v[0-9]+(\.[0-9]+){2}(-.+|[^-.]*)$/ branches: ignore: - master - /^release-[0-9]+(\.[0-9]+){2}(-.+|[^-.]*)$/ - docs - gh-pages - &filter-only-master branches: only: master - &filter-only-release branches: ignore: /.*/ tags: only: /^v[0-9]+(\.[0-9]+){2}(-.+|[^-.]*)$/ - &filter-docs branches: only: docs version: 2 jobs: build: working_directory: ~/alexanderzobnin/grafana-zabbix docker: - image: circleci/node:12 steps: - checkout - restore_cache: keys: - dependency-cache-{{ checksum "yarn.lock" }} - run: name: yarn install command: 'yarn install --pure-lockfile --no-progress' no_output_timeout: 15m - save_cache: key: dependency-cache-{{ checksum "yarn.lock" }} paths: - ./node_modules - run: npm run build lint: working_directory: ~/alexanderzobnin/grafana-zabbix docker: - image: circleci/node:12 steps: - checkout - restore_cache: keys: - dependency-cache-{{ checksum "yarn.lock" }} - run: name: yarn install command: 'yarn install --pure-lockfile --no-progress' no_output_timeout: 15m - save_cache: key: dependency-cache-{{ checksum "yarn.lock" }} paths: - ./node_modules - run: npm run lint test: working_directory: ~/alexanderzobnin/grafana-zabbix environment: CIRCLE_ARTIFACTS: /tmp/circleci-artifacts CIRCLE_TEST_REPORTS: /tmp/circleci-test-results docker: - image: circleci/node:12 steps: - checkout # Prepare for artifact and test results collection equivalent to how it was done on 1.0. # In many cases you can simplify this from what is generated here. # 'See docs on artifact collection here https://circleci.com/docs/2.0/artifacts/' - run: mkdir -p $CIRCLE_ARTIFACTS $CIRCLE_TEST_REPORTS - restore_cache: keys: - dependency-cache-{{ checksum "yarn.lock" }} - run: name: yarn install command: 'yarn install --pure-lockfile --no-progress' no_output_timeout: 15m - save_cache: key: dependency-cache-{{ checksum "yarn.lock" }} paths: - ./node_modules - run: npm run ci-test - store_test_results: path: /tmp/circleci-test-results - store_artifacts: path: /tmp/circleci-artifacts - store_artifacts: path: /tmp/circleci-test-results make-release: working_directory: ~/alexanderzobnin/grafana-zabbix docker: - image: circleci/node:12 environment: CI_GIT_USER: CircleCI CI_GIT_EMAIL: ci@grafana.com steps: - add_ssh_keys: fingerprints: - "dc:7e:54:e0:aa:56:4d:e5:60:7b:f3:51:24:2d:d3:29" - checkout - restore_cache: keys: - dependency-cache-{{ checksum "yarn.lock" }} - run: name: yarn install command: 'yarn install --pure-lockfile --no-progress' no_output_timeout: 15m - save_cache: key: dependency-cache-{{ checksum "yarn.lock" }} paths: - ./node_modules - run: ./.circleci/make-release.sh build-docs: working_directory: ~/grafana-zabbix docker: - image: circleci/python:2.7 steps: - run: name: install git lfs command: 'curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash' - run: sudo apt-get install git-lfs - run: git lfs install - run: sudo pip install --upgrade pip - run: sudo pip install mkdocs - checkout - run: git lfs fetch --all - run: cd docs && mkdocs build --clean - persist_to_workspace: root: . paths: - docs/site deploy-docs: working_directory: ~/grafana-zabbix docker: - image: circleci/node:12 environment: GH_PAGES_BRANCH: gh-pages CI_GIT_USER: CircleCI CI_GIT_EMAIL: ci@grafana.com steps: - add_ssh_keys: fingerprints: - "dc:7e:54:e0:aa:56:4d:e5:60:7b:f3:51:24:2d:d3:29" - checkout - attach_workspace: at: ../gh-pages - run: ./.circleci/deploy-docs.sh codespell: docker: - image: circleci/python steps: - checkout - run: sudo pip install codespell - run: codespell -S './.git*,./src/img*,./yarn.lock' -L que --ignore-words=./.codespell_ignore workflows: version: 2 build-master: jobs: - build: filters: *filter-only-master - codespell: filters: *filter-only-master - lint: filters: *filter-only-master - test: filters: *filter-only-master build-branches-and-prs: jobs: - build: filters: *filter-not-release-or-master - codespell: filters: *filter-not-release-or-master - lint: filters: *filter-not-release-or-master - test: filters: *filter-not-release-or-master build-release: jobs: - build: filters: *filter-only-release - codespell: filters: *filter-only-release - lint: filters: *filter-only-release - test: filters: *filter-only-release - make-release: requires: - build - codespell - lint - test filters: *filter-only-release build-docs: jobs: - build-docs: filters: *filter-docs - deploy-docs: requires: - build-docs filters: *filter-docs