steps:
  - label: ":eslint: Lint"
    command:
      # TODO: Remove hacky chmod for BuildKite
      - "echo '--- Setup'"
      - "chmod +x ./scripts/ci/*.sh"
      - "chmod +x ./scripts/*"
      - "echo '--- Install js-sdk'"
      - "./scripts/ci/install-deps.sh"
      - "yarn lintwithexclusions"
      - "yarn stylelint"
    plugins:
      - docker#v3.0.1:
          image: "node:10"

  - label: ":chains: End-to-End Tests"
    agents:
      # We use a xlarge sized instance instead of the normal small ones because
      # e2e tests otherwise take +-8min
      queue: "xlarge"
    command:
      # TODO: Remove hacky chmod for BuildKite
      - "echo '--- Setup'"
      - "chmod +x ./scripts/ci/*.sh"
      - "chmod +x ./scripts/*"
      - "echo '--- Install js-sdk'"
      - "./scripts/ci/install-deps.sh"
      - "./scripts/ci/end-to-end-tests.sh"
    plugins:
      - docker#v3.0.1:
          image: "matrixdotorg/riotweb-ci-e2etests-env:latest"
          propagate-environment: true

  - label: ":karma: Tests"
    agents:
      # We use a medium sized instance instead of the normal small ones because
      # webpack loves to gorge itself on resources.
      queue: "medium"
    command:
      # Install chrome
      - "echo '--- Installing Chrome'"
      - "wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -"
      - "sh -c 'echo \"deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main\" >> /etc/apt/sources.list.d/google.list'"
      - "apt-get update"
      - "apt-get install -y google-chrome-stable"
      # Run tests
      # TODO: Remove hacky chmod for BuildKite
      - "chmod +x ./scripts/ci/*.sh"
      - "chmod +x ./scripts/*"
      - "echo '--- Installing Dependencies'"
      - "./scripts/ci/install-deps.sh"
      - "echo '+++ Running Tests'"
      - "./scripts/ci/unit-tests.sh"
    env:
      CHROME_BIN: "/usr/bin/google-chrome-stable"
    plugins:
      - docker#v3.0.1:
          image: "node:10"
          propagate-environment: true

  - label: "🔧 Riot Tests"
    agents:
      # We use a medium sized instance instead of the normal small ones because
      # webpack loves to gorge itself on resources.
      queue: "medium"
    command:
      # Install chrome
      - "echo '--- Installing Chrome'"
      - "wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -"
      - "sh -c 'echo \"deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main\" >> /etc/apt/sources.list.d/google.list'"
      - "apt-get update"
      - "apt-get install -y google-chrome-stable"
      # Run tests
      # TODO: Remove hacky chmod for BuildKite
      - "chmod +x ./scripts/ci/*.sh"
      - "chmod +x ./scripts/*"
      - "echo '--- Installing Dependencies'"
      - "./scripts/ci/install-deps.sh"
      - "echo '+++ Running Tests'"
      - "./scripts/ci/riot-unit-tests.sh"
    env:
      CHROME_BIN: "/usr/bin/google-chrome-stable"
    plugins:
      - docker#v3.0.1:
          image: "node:10"
          propagate-environment: true

  - label: "🌐 i18n"
    command:
      - "echo '--- Fetching Dependencies'"
      - "yarn install"
      - "echo '+++ Testing i18n output'"
      - "yarn diff-i18n"
    plugins:
      - docker#v3.0.1:
          image: "node:10"

  - wait

  - label: "🐴 Trigger riot-web"
    trigger: "riot-web"
    branches: "develop"
    build:
        branch: "develop"
        message: "[react-sdk] ${BUILDKITE_MESSAGE}"
    async: true