binhonglee/GlobeTrotte

View on GitHub
.circleci/config.yml

Summary

Maintainability
Test Coverage
version: 2.1

jobs:
  build:
    docker:
      - image: circleci/golang:1.17.5-node
      - image: circleci/postgres:latest-postgis
        environment:
          POSTGRES_USER: test
          POSTGRES_DB: test
          POSTGRES_PASSWORD: test

    working_directory: ~/GlobeTrotte

    steps:
      - run: go version
      - run: node --version
      - checkout
      - restore_cache:
          key: please-{{ checksum "pleasew" }}
      # - restore_cache:
      #     key: pnpm-store-{{ checksum "package.json" }}
      - restore_cache:
          key: node-modules-{{ checksum "package.json" }}
      - run: sudo apt-get update
      - run: sudo apt-get install -y libasound2 libgbm-dev libgconf-2-4 libgtk2.0-0 libgtk-3-0 libnotify-dev libnss3 libxcomposite-dev libxcomposite1 libxss1 libxtst6 lsof postgresql-client xauth xvfb
      - run: /usr/bin/Xvfb :99 -screen 0 1920x1080x24+32 &

      - run: echo 'export DISPLAY=:99' >> $BASH_ENV
      - run: echo 'export PATH=/home/circleci/.nimble/bin:$HOME/wings:$PATH' >> $BASH_ENV
      - run: echo 'export USER="circleci"' >> $BASH_ENV
      - run: sudo npm i -g pnpm@7.1.0
      - run: pnpm i
      - run: ./scripts/setup.sh -s

      - run: cp config/test.kdl config/config.kdl
      - run: dockerize -wait tcp://localhost:5432 -timeout 1m
      - run: ./pleasew go_mod

      # run tests
      - run: ./pleasew build --show_all_output
      - run: ./pleasew lint
      - run: ./pleasew cover --show_all_output //src/turbine/...
      - run: pnpm run -r check:tsc
      - run:
          command: ./pleasew run "//src/turbine:main"
          background: true
      - run: sleep 3
      - run:
          command: ./pleasew show
          background: true
      - run: sleep 3
      # - run: ./pleasew test --show_all_output
      # - run: ./pleasew test --show_all_output //src/cockpit/tests/components/...
      # - run: ./pleasew test --show_all_output //src/cockpit/tests/views/...
      - run: pnpm run install_playwright --no-frozen-lockfile 
      - run: pnpm run -r test:circleci
      - run: ./scripts/leftover.sh
      - save_cache:
          key: please-{{ checksum "pleasew" }}
          paths:
            - ~/.please
      - save_cache:
          key: pnpm-store-{{ checksum "package.json" }}
          paths:
            - ~/.pnpm-store
      - save_cache:
          key: node-modules-{{ checksum "package.json" }}
          paths:
            - node_modules
      - store_artifacts:
          path: ~/GlobeTrotte/src/cockpit/playwright
      - store_artifacts:
          path: ~/GlobeTrotte/src/cockpit/playwright_coverage
      - store_artifacts:
          path: ~/GlobeTrotte/coverage
      - store_artifacts:
          path: ~/GlobeTrotte/logs