version: 2.1 executors: golang: docker: - image: tendermintdev/docker-tendermint-build working_directory: /go/src/github.com/tendermint/tendermint environment: GOBIN: /tmp/bin release: machine: true docs: docker: - image: tendermintdev/docker-website-deployment environment: AWS_REGION: us-east-1 commands: run_test: parameters: script_path: type: string steps: - attach_workspace: at: /tmp/bin - restore_cache: name: "Restore source code cache" keys: - go-src-v1-{{ .Revision }} - checkout - restore_cache: name: "Restore go modules cache" keys: - go-mod-v1-{{ checksum "go.sum" }} - run: name: "Running test" command: | bash << parameters.script_path >> jobs: setup_dependencies: executor: golang steps: - checkout - restore_cache: name: "Restore go modules cache" keys: - go-mod-v1-{{ checksum "go.sum" }} - run: command: | mkdir -p /tmp/bin - run: name: Cache go modules command: make go-mod-cache - run: name: tools command: make tools - run: name: "Build binaries" command: make install install_abci - save_cache: name: "Save go modules cache" key: go-mod-v1-{{ checksum "go.sum" }} paths: - "/go/pkg/mod" - save_cache: name: "Save source code cache" key: go-src-v1-{{ .Revision }} paths: - ".git" - persist_to_workspace: root: "/tmp/bin" paths: - "." deploy_docs: executor: docs steps: - checkout - run: name: "Pull versions" command: git fetch origin v0.32 v0.33 - run: name: "Build docs" command: make build-docs - run: name: "Sync to S3" command: make sync-docs prepare_build: executor: golang steps: - restore_cache: name: "Restore source code cache" keys: - go-src-v1-{{ .Revision }} - checkout - run: name: Get next release number command: | export LAST_TAG="`git describe --tags --abbrev=0 --match "${CIRCLE_BRANCH}.*"`" echo "Last tag: ${LAST_TAG}" if [ -z "${LAST_TAG}" ]; then export LAST_TAG="${CIRCLE_BRANCH}" echo "Last tag not found. Possibly fresh branch or feature branch. Setting ${LAST_TAG} as tag." fi export NEXT_TAG="`python -u scripts/release_management/bump-semver.py --version "${LAST_TAG}"`" echo "Next tag: ${NEXT_TAG}" echo "export CIRCLE_TAG=\"${NEXT_TAG}\"" > release-version.source - run: name: Build dependencies command: make tools - persist_to_workspace: root: . paths: - "release-version.source" - save_cache: key: v2-release-deps-{{ checksum "go.sum" }} paths: - "/go/pkg/mod" # # Test RPC implementation against the swagger documented specs # contract_tests: # working_directory: /home/circleci/.go_workspace/src/github.com/tendermint/tendermint # machine: # image: circleci/classic:latest # environment: # GOBIN: /home/circleci/.go_workspace/bin # GOPATH: /home/circleci/.go_workspace/ # GOOS: linux # GOARCH: amd64 # parallelism: 1 # steps: # - checkout # - run: # name: Test RPC endpoints against swagger documentation # command: | # set -x # export PATH=~/.local/bin:$PATH # # install node and dredd # ./scripts/get_nodejs.sh # # build the binaries with a proper version of Go # docker run --rm -v "$PWD":/go/src/github.com/tendermint/tendermint -w /go/src/github.com/tendermint/tendermint golang make build-linux build-contract-tests-hooks # # This docker image works with go 1.7, we can install here the hook handler that contract-tests is going to use # go get github.com/snikch/goodman/cmd/goodman # make contract-tests workflows: version: 2 docs: jobs: - deploy_docs: context: tendermint-docs filters: branches: only: - master tags: only: - /^v.*/ - deploy_docs: context: tendermint-docs-staging filters: branches: only: - docs-staging # - contract_tests: # requires: # - setup_dependencies