os: linux dist: bionic group: edge language: node_js node_js: 11 php: 7.1 android: components: - tools - platform-tools - build-tools-29.0.3 - android-28 - extra-google-google_play_services - extra-google-m2repository - extra-android-m2repository git: depth: 3 before_cache: - rm -rf $HOME/.cache/electron-builder/wine - rm -f $HOME/.gradle/caches/modules-2/modules-2.lock - rm -fr $HOME/.gradle/caches/*/plugin-resolution/ cache: directories: - $HOME/.npm - $HOME/.cache/electron - $HOME/.cache/electron-builder - $HOME/.gradle/caches/ - $HOME/.gradle/wrapper/ - $HOME/.android/build-cache before_script: - if [ "$TRAVIS_OS_NAME" != 'windows' ] ; then npm install npm@latest -g ; fi - gulp jobs: include: - stage: check if: NOT branch =~ /(master|integration|desktop)$/ AND env(DEPLOY) IS blank os: linux script: npm run build --bailOnLintError true --typeCheckOnLint true - stage: mirror if: branch IN (master, integration, desktop) AND repo = moodlehq/moodleapp os: linux script: scripts/mirror.sh - stage: prepare if: branch =~ /(master|^integration)$/ AND env(PREPARE) IS NOT blank AND env(PREPARE) = 1 os: linux script: scripts/aot.sh - stage: build name: "Build Android" if: env(DEPLOY) IS NOT blank AND ((env(DEPLOY) = 1 AND NOT branch = desktop) OR (env(DEPLOY) IN (2,3) AND tag IS NOT blank)) os: linux dist: trusty group: edge language: android env: - BUILD_PLATFORM='android' before_install: - nvm install 11 - node --version - npm --version - nvm --version - npm ci - npm install -g gulp script: scripts/aot.sh - stage: build name: "Build iOS" if: env(DEPLOY) IS NOT blank AND ((env(DEPLOY) = 1 AND NOT branch = desktop) OR (env(DEPLOY) IN (2,3) AND tag IS NOT blank)) os: osx osx_image: xcode11.3 env: - BUILD_PLATFORM='ios' script: scripts/aot.sh - stage: build name: "Build Linux" if: env(DEPLOY) IS NOT blank AND ((env(DEPLOY) = 1 AND branch = desktop) OR (env(DEPLOY) = 3 AND tag IS NOT blank)) os: linux env: - ELECTRON_CACHE=$HOME/.cache/electron - ELECTRON_BUILDER_CACHE=$HOME/.cache/electron-builder - BUILD_PLATFORM='linux' script: scripts/aot.sh - stage: build name: "Build MacOS" if: env(DEPLOY) IS NOT blank AND ((env(DEPLOY) = 1 AND branch = desktop) OR (env(DEPLOY) = 3 AND tag IS NOT blank)) os: osx osx_image: xcode11.3 env: - ELECTRON_CACHE=$HOME/.cache/electron - ELECTRON_BUILDER_CACHE=$HOME/.cache/electron-builder - BUILD_PLATFORM='osx' script: scripts/aot.sh - stage: build name: "Build Windows" if: env(DEPLOY) IS NOT blank AND ((env(DEPLOY) = 1 AND branch = desktop) OR (env(DEPLOY) = 3 AND tag IS NOT blank)) os: windows env: - ELECTRON_CACHE=$HOME/.cache/electron - ELECTRON_BUILDER_CACHE=$HOME/.cache/electron-builder - ELECTRON_BUILDER_ALLOW_UNRESOLVED_DEPENDENCIES=true - DEBUG=electron-windows-store - BUILD_PLATFORM='windows' script: scripts/aot.sh - stage: test name: "End to end tests (mod_forum, mod_messages and mod_comments)" services: - docker if: env(TRAVIS_EVENT_TYPE) = cron script: scripts/test_e2e.sh "@app&&@mod_forum" "@app&&@mod_messages" "@app&&@mod_comments" - stage: test name: "End to end tests (mod_data, mod_survey, mod_course, core_course and mod_courses)" services: - docker if: env(TRAVIS_EVENT_TYPE) = cron script: scripts/test_e2e.sh "@app&&@mod_data" "@app&&@mod_survey" "@app&&@mod_course" "@app&&@core_course" "@app&&@mod_courses" - stage: test name: "End to end tests (others)" services: - docker if: env(TRAVIS_EVENT_TYPE) = cron script: scripts/test_e2e.sh "@app&&~@mod_forum&&~@mod_messages&&~@mod_comments&&~@mod_data&&~@mod_survey&&~@mod_course&&~@core_course&&~@mod_courses"