cache: key: ${CI_COMMIT_REF_SLUG} paths: - node_modules/ - android/ - ios/ stages: - lint - test - pbi-sonar-scanner - sonar-scanner - build lint: image: node:slim stage: lint before_script: - yarn install script: - yarn lint test: image: node:slim stage: test before_script: - yarn install script: - yarn test --coverage --watchAll=false --verbose --collectCoverageFrom="src/**/*.tsx" artifacts: paths: - coverage pbi-sonar-scanner: image: name: sonarsource/sonar-scanner-cli:latest entrypoint: [''] stage: pbi-sonar-scanner script: - sonar-scanner -Dsonar.host.url=$SONARQUBE_URL -Dsonar.login=$SONARQUBE_TOKEN -Dsonar.branch.name=$CI_COMMIT_REF_NAME -Dsonar.branch.target=staging -Dsonar.projectKey=$SONARQUBE_PROJECT_KEY except: - staging - master sonar-scanner: image: name: sonarsource/sonar-scanner-cli:latest entrypoint: [''] stage: sonar-scanner script: - sonar-scanner -Dsonar.host.url=$SONARQUBE_URL -Dsonar.login=$SONARQUBE_TOKEN -Dsonar.branch.name=$CI_COMMIT_REF_NAME -Dsonar.projectKey=$SONARQUBE_PROJECT_KEY only: - staging - master android: image: reactnativecommunity/react-native-android stage: build before_script: - yarn install - export ANDROID_SDK_ROOT=/usr/lib/android-sdk script: - cd android - chmod +x gradlew && ./gradlew assembleRelease - cd .. && cp android/app/build/outputs/apk/release/app-release.apk $CI_PROJECT_NAME-$CI_COMMIT_REF_NAME.apk artifacts: name: '$CI_PROJECT_NAME-$CI_COMMIT_REF_NAME' paths: - $CI_PROJECT_NAME-$CI_COMMIT_REF_NAME.apk except: changes: - 'README.md' only: - staging - master