version: 2 jobs: lint: working_directory: /work docker: [{image: 'docker:17.05-git'}] steps: - checkout - setup_remote_docker - run: command: docker version - run: name: "Lint" command: | dockerfile=dockerfiles/Dockerfile.lint echo "COPY . ." >> $dockerfile docker build -f $dockerfile --tag cli-linter . docker run cli-linter cross: working_directory: /work docker: [{image: 'docker:17.05-git'}] steps: - checkout - setup_remote_docker - run: name: "Cross" command: | dockerfile=dockerfiles/Dockerfile.cross echo "COPY . ." >> $dockerfile docker build -f $dockerfile --tag cli-builder . docker run --name cross cli-builder make cross docker cp cross:/go/src/github.com/docker/cli/build /work/build - store_artifacts: path: /work/build test: working_directory: /work docker: [{image: 'docker:17.05-git'}] steps: - checkout - setup_remote_docker - run: name: "Unit Test with Coverage" command: | dockerfile=dockerfiles/Dockerfile.dev echo "COPY . ." >> $dockerfile docker build -f $dockerfile --tag cli-builder . docker run --name test cli-builder make test-coverage - run: name: "Upload to Codecov" command: | docker cp test:/go/src/github.com/docker/cli/coverage.txt coverage.txt apk add -U bash curl curl -s https://codecov.io/bash | bash validate: working_directory: /work docker: [{image: 'docker:17.05-git'}] steps: - checkout - setup_remote_docker - run: name: "Validate Vendor, Docs, and Code Generation" command: | dockerfile=dockerfiles/Dockerfile.dev echo "COPY . ." >> $dockerfile rm -f .dockerignore # include .git docker build -f $dockerfile --tag cli-builder . docker run cli-builder make -B vendor compose-jsonschema manpages yamldocs workflows: version: 2 ci: jobs: - lint - cross - test - validate