github.com/cspotcode/docker-cli@v20.10.0-rc1.0.20201201121459-3faad7acc5b8+incompatible/.circleci/config.yml (about)

     1  version: 2
     2  
     3  jobs:
     4  
     5    lint:
     6      working_directory: /work
     7      docker: [{image: 'docker:19.03-git'}]
     8      environment:
     9        DOCKER_BUILDKIT: 1
    10      steps:
    11        - checkout
    12        - setup_remote_docker:
    13            version: 19.03.12
    14            reusable: true
    15            exclusive: false
    16        - run:
    17            name: "Docker version"
    18            command: docker version
    19        - run:
    20            name: "Docker info"
    21            command: docker info
    22        - run:
    23            name: "Shellcheck - build image"
    24            command: |
    25              docker build --progress=plain -f dockerfiles/Dockerfile.shellcheck --tag cli-validator:$CIRCLE_BUILD_NUM .
    26        - run:
    27            name: "Shellcheck"
    28            command: |
    29              docker run --rm cli-validator:$CIRCLE_BUILD_NUM \
    30                  make shellcheck
    31        - run:
    32            name: "Lint - build image"
    33            command: |
    34              docker build --progress=plain -f dockerfiles/Dockerfile.lint --tag cli-linter:$CIRCLE_BUILD_NUM .
    35        - run:
    36            name: "Lint"
    37            command: |
    38              docker run --rm cli-linter:$CIRCLE_BUILD_NUM
    39  
    40    cross:
    41      working_directory: /work
    42      docker: [{image: 'docker:19.03-git'}]
    43      environment:
    44        DOCKER_BUILDKIT: 1
    45      parallelism: 3
    46      steps:
    47        - checkout
    48        - setup_remote_docker:
    49            version: 19.03.12
    50            reusable: true
    51            exclusive: false
    52        - run:
    53            name: "Docker version"
    54            command: docker version
    55        - run:
    56            name: "Docker info"
    57            command: docker info
    58        - run:
    59            name: "Cross - build image"
    60            command: |
    61              docker build --progress=plain -f dockerfiles/Dockerfile.cross --tag cli-builder:$CIRCLE_BUILD_NUM .
    62        - run:
    63            name: "Cross"
    64            command: |
    65              name=cross-$CIRCLE_BUILD_NUM-$CIRCLE_NODE_INDEX
    66              docker run \
    67                  -e CROSS_GROUP=$CIRCLE_NODE_INDEX \
    68                  --name $name cli-builder:$CIRCLE_BUILD_NUM \
    69                  make cross
    70              docker cp \
    71                  $name:/go/src/github.com/docker/cli/build \
    72                  /work/build
    73        - store_artifacts:
    74            path: /work/build
    75  
    76    test:
    77      working_directory: /work
    78      docker: [{image: 'docker:19.03-git'}]
    79      environment:
    80        DOCKER_BUILDKIT: 1
    81      steps:
    82        - checkout
    83        - setup_remote_docker:
    84            version: 19.03.12
    85            reusable: true
    86            exclusive: false
    87        - run:
    88            name: "Docker version"
    89            command: docker version
    90        - run:
    91            name: "Docker info"
    92            command: docker info
    93        - run:
    94            name: "Unit Test with Coverage - build image"
    95            command: |
    96              mkdir -p test-results/unit-tests
    97              docker build --progress=plain -f dockerfiles/Dockerfile.dev --tag cli-builder:$CIRCLE_BUILD_NUM .
    98        - run:
    99            name: "Unit Test with Coverage"
   100            command: |
   101              docker run \
   102                  -e GOTESTSUM_JUNITFILE=/tmp/junit.xml \
   103                  --name \
   104                  test-$CIRCLE_BUILD_NUM cli-builder:$CIRCLE_BUILD_NUM \
   105                  make test-coverage
   106              docker cp \
   107                  test-$CIRCLE_BUILD_NUM:/tmp/junit.xml \
   108                  ./test-results/unit-tests/junit.xml
   109        - run:
   110            name: "Upload to Codecov"
   111            command: |
   112              docker cp \
   113                  test-$CIRCLE_BUILD_NUM:/go/src/github.com/docker/cli/coverage.txt \
   114                  coverage.txt
   115              apk add -U bash curl
   116              curl -s https://codecov.io/bash | bash || \
   117                  echo 'Codecov failed to upload'
   118        - store_test_results:
   119            path:  test-results
   120        - store_artifacts:
   121            path:  test-results
   122  
   123    validate:
   124      working_directory: /work
   125      docker: [{image: 'docker:19.03-git'}]
   126      environment:
   127        DOCKER_BUILDKIT: 1
   128      steps:
   129        - checkout
   130        - setup_remote_docker:
   131            version: 19.03.12
   132            reusable: true
   133            exclusive: false
   134        - run:
   135            name: "Docker version"
   136            command: docker version
   137        - run:
   138            name: "Docker info"
   139            command: docker info
   140        - run:
   141            name: "Validate - build image"
   142            command: |
   143              rm -f .dockerignore # include .git
   144              docker build --progress=plain -f dockerfiles/Dockerfile.dev --tag cli-builder-with-git:$CIRCLE_BUILD_NUM .
   145        - run:
   146            name: "Validate Vendor, Docs, and Code Generation"
   147            command: |
   148              docker run --rm cli-builder-with-git:$CIRCLE_BUILD_NUM \
   149                  make ci-validate
   150            no_output_timeout: 15m
   151  
   152  workflows:
   153    version: 2
   154    ci:
   155      jobs:
   156        - lint
   157        - cross
   158        - test
   159        - validate