Files
grafana-zabbix/.circleci/config.yml

239 lines
6.4 KiB
YAML

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/golang:1.13-node
environment:
YARN_NO_PROGRESS: "true"
steps:
- checkout
- restore_cache:
keys:
- dependency-cache-npm-{{ checksum "yarn.lock" }}
- dependency-cache-go-{{ checksum "go.sum" }}
- run:
name: Install Dependencies
command: 'make install'
no_output_timeout: 15m
- save_cache:
key: dependency-cache-npm-{{ checksum "yarn.lock" }}
paths:
- ./node_modules
- save_cache:
key: dependency-cache-go-{{ checksum "go.sum" }}
paths:
- ./vendor
- run: make build
lint:
working_directory: ~/alexanderzobnin/grafana-zabbix
docker:
- image: circleci/golang:1.13-node
steps:
- checkout
- restore_cache:
keys:
- dependency-cache-npm-{{ checksum "yarn.lock" }}
- dependency-cache-go-{{ checksum "go.sum" }}
- run:
name: Install Dependencies
command: 'make install'
no_output_timeout: 15m
- save_cache:
key: dependency-cache-npm-{{ checksum "yarn.lock" }}
paths:
- ./node_modules
- save_cache:
key: dependency-cache-go-{{ checksum "go.sum" }}
paths:
- ./vendor
- run: make lint
test:
working_directory: ~/alexanderzobnin/grafana-zabbix
environment:
CIRCLE_ARTIFACTS: /tmp/circleci-artifacts
CIRCLE_TEST_REPORTS: /tmp/circleci-test-results
docker:
- image: circleci/golang:1.13-node
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-npm-{{ checksum "yarn.lock" }}
- dependency-cache-go-{{ checksum "go.sum" }}
- run:
name: Install Dependencies
command: 'make install'
no_output_timeout: 15m
- save_cache:
key: dependency-cache-npm-{{ checksum "yarn.lock" }}
paths:
- ./node_modules
- save_cache:
key: dependency-cache-go-{{ checksum "go.sum" }}
paths:
- ./vendor
- run: make test-ci
- 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/golang:1.13-node
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-npm-{{ checksum "yarn.lock" }}
- dependency-cache-go-{{ checksum "go.sum" }}
- run:
name: Install Dependencies
command: 'make install'
no_output_timeout: 15m
- save_cache:
key: dependency-cache-npm-{{ checksum "yarn.lock" }}
paths:
- ./node_modules
- save_cache:
key: dependency-cache-go-{{ checksum "go.sum" }}
paths:
- ./vendor
- 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/golang:1.13-node
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*' -L que
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