# Author @mvxt version: 2.1 # Simple YAML anchors aliases: - &project_dir "~/project" commands: dependencies: description: "Download dependencies and setup global packages" parameters: shell: type: string default: "/bin/bash --login -eo pipefail" pub-cache: type: string default: "~/.pub-cache" steps: - checkout - restore_cache: keys: - v1.4-dependencies-{{ arch }}-{{ checksum "pubspec.lock" }} - v1.4-dependencies-{{ arch }}- - run: name: Download deps shell: << parameters.shell >> command: pub get - run: name: Get junitreporter shell: << parameters.shell >> command: pub global activate junitreport - save_cache: key: v1.4-dependencies-{{ arch }}-{{ checksum "pubspec.lock" }} paths: - .dart_tool - << parameters.pub-cache >> ###### ################ # Workflow definition ###### ################ workflows: version: 2.1 test-and-build: jobs: - test - build-linux: requires: - test ################## # Job Definitions ################## jobs: test: docker: - image: google/dart:2.9.1 auth: username: $DOCKER_USERNAME password: $DOCKER_PASSWORD # context / project UI env-var reference steps: - dependencies: shell: "/bin/bash -eo pipefail" - run: name: Make folder for test results command: mkdir -p test-results/dart-tests - run: name: Run tests command: pub run test --reporter json | tojunit --output test-results/dart-tests/circleci_dart_demo_test-report.xml - store_test_results: path: test-results build-linux: machine: true steps: - run: name: Install Dart SDK shell: /bin/bash --login -eo pipefail command: | # Setup repo & signing key sudo apt update sudo apt install apt-transport-https sudo sh -c 'wget -qO- https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -' sudo sh -c 'wget -qO- https://storage.googleapis.com/download.dartlang.org/linux/debian/dart_stable.list > /etc/apt/sources.list.d/dart_stable.list' # Update again and install sudo apt update sudo apt install dart # Set PATH in profile for downstream commands echo "export PATH=$PATH:/usr/lib/dart/bin" >> $BASH_ENV - dependencies