# Configuration file for https://circleci.com/gh/angular/angular # Note: YAML anchors allow an object to be re-used, reducing duplication. # The ampersand declares an alias for an object, then later the `<<: *name` # syntax dereferences it. # See http://blog.daemonl.com/2016/02/yaml.html # To validate changes, use an online parser, eg. # http://yaml-online-parser.appspot.com/ # Settings common to each job anchor_1: &job_defaults working_directory: ~/ng docker: - image: angular/ngcontainer:0.0.7 # After checkout, rebase on top of master. # Similar to travis behavior, but not quite the same. # See https://discuss.circleci.com/t/1662 anchor_2: &post_checkout post: git pull --ff-only origin "refs/pull/${CI_PULL_REQUEST//*pull\//}/merge" version: 2 jobs: lint: <<: *job_defaults steps: - checkout: <<: *post_checkout # Check BUILD.bazel formatting before we have a node_modules directory # Then we don't need any exclude pattern to avoid checking those files - run: buildifier -mode=diff $(find . -iname BUILD.bazel -type f) - run: buildifier -mode=check $(find . -iname BUILD.bazel -type f) - restore_cache: key: angular-{{ .Branch }}-{{ checksum "yarn.lock" }} - run: yarn install --frozen-lockfile --non-interactive - run: ./node_modules/.bin/gulp lint build: <<: *job_defaults steps: - checkout: <<: *post_checkout - restore_cache: key: angular-{{ .Branch }}-{{ checksum "yarn.lock" }} - run: bazel info release - run: bazel run @yarn//:yarn - run: bazel build --config=ci packages/... - run: bazel test --config=ci packages/... @angular//... - save_cache: key: angular-{{ .Branch }}-{{ checksum "yarn.lock" }} paths: - "node_modules" workflows: version: 2 default_workflow: jobs: - lint - build