steps: - label: ":eslint: JS Lint" command: # We fetch the develop js-sdk to get our latest eslint rules - "echo '--- Install js-sdk'" - "./scripts/ci/install-deps.sh --ignore-scripts" - "echo '+++ Lint'" - "yarn lint:js" plugins: - docker#v3.0.1: image: "node:12" - label: ":eslint: TS Lint" command: - "echo '--- Install'" - "yarn install --ignore-scripts" - "echo '+++ Lint'" - "yarn lint:ts" plugins: - docker#v3.0.1: image: "node:12" - label: ":eslint: Types Lint" command: - "echo '--- Install'" - "yarn install --ignore-scripts" - "echo '+++ Lint'" - "yarn lint:types" plugins: - docker#v3.0.1: image: "node:12" - label: ":stylelint: Style Lint" command: - "echo '--- Install'" - "yarn install --ignore-scripts" - "yarn lint:style" plugins: - docker#v3.0.1: image: "node:12" - label: ":jest: 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: - "echo '--- Install js-sdk'" # We don't use the babel-ed output for anything so we can --ignore-scripts # to save transpiling the files. We run the transpile step explicitly in # the 'build' job. - "./scripts/ci/install-deps.sh --ignore-scripts" - "yarn run reskindex" - "echo '+++ Running Tests'" - "yarn test" plugins: - docker#v3.0.1: image: "node:12" - label: "🛠 Build" command: - "echo '+++ Install & Build'" - "yarn install" plugins: - docker#v3.0.1: image: "node:12" - 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: - "echo '--- Install js-sdk'" - "./scripts/ci/install-deps.sh --ignore-scripts" - "echo '+++ Running Tests'" - "./scripts/ci/end-to-end-tests.sh" plugins: - docker#v3.0.1: image: "matrixdotorg/riotweb-ci-e2etests-env:latest" propagate-environment: true workdir: "/workdir/matrix-react-sdk" retry: automatic: - exit_status: 1 # retry end-to-end tests once as Puppeteer sometimes fails limit: 1 - 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: - "echo '+++ Running Tests'" - "./scripts/ci/riot-unit-tests.sh" plugins: - docker#v3.0.1: image: "node:10" propagate-environment: true workdir: "/workdir/matrix-react-sdk" - label: "🌐 i18n" command: - "echo '--- Fetching Dependencies'" - "yarn install --ignore-scripts" - "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