# iOS CircleCI 2.0 configuration file
version: 2
jobs:
  build:
    macos:
      xcode: "9.4.0"

    steps:
      - checkout
      
      - run:
          name: Install nodejs
          command: |
            brew update
            brew upgrade node

      - run:
          name: Set timezone and check current datetime
          command: |
            sudo systemsetup -settimezone Europe/Warsaw
            echo "Today is $(date +"%Y-%m-%d %T")"

      - run:
          name: Installed python and pip version
          command: |
            python3 -V
            pip3 -V

      - restore_cache:
          name: Restore Yarn Package Cache
          keys:
            - yarn-packages-{{ checksum "yarn.lock" }}

      - run:
          name: Install project
          # increased timeout is for material-design-icons
          command: |
            yarn install --network-timeout 1000000

      - save_cache:
          name: Save Yarn Package Cache
          key: yarn-packages-{{ checksum "yarn.lock" }}
          paths:
            - ~/.cache/yarn

      - run:
          name: Building WebUI for distribution
          command: |
            yarn buildforelectron

      - run:
          name: Building gns3server
          command: |
            python3 -V
            pip3 install -r scripts/requirements.txt
            python3 scripts/build.py download -a
            python3 scripts/build.py build_exe -b dist/exe.gns3server -s
            python3 scripts/build.py validate -b dist

      - run:
          name: Dist project
          command: |
            yarn electron-builder --mac --x64 --publish always

      - run:
          name: Gather artifacts
          command: |
            mkdir artifacts
            cp build/*.dmg artifacts/

      - store_artifacts:
          path: artifacts
          destination: artifacts

workflows:
  version: 2
  build_and_deploy:
    jobs:
      - build:
          filters:
            tags:
              only: /v.*/

