You've already forked joplin
							
							
				mirror of
				https://github.com/laurent22/joplin.git
				synced 2025-10-31 00:07:48 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			139 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			139 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| # Only build tags (Doesn't work - doesn't build anything)
 | |
| if: tag IS present OR type = pull_request OR branch = dev
 | |
| 
 | |
| rvm: 2.3.3
 | |
| 
 | |
| # It's important to only build production branches otherwise Electron Builder
 | |
| # might take assets from dev branches and overwrite those of production.
 | |
| # https://docs.travis-ci.com/user/customizing-the-build/#Building-Specific-Branches
 | |
| branches:
 | |
|   only:
 | |
|     - master
 | |
|     - dev
 | |
|     - /^v\d+\.\d+(\.\d+)?(-\S*)?$/
 | |
| 
 | |
| matrix:
 | |
|   include:
 | |
|     - os: osx
 | |
|       osx_image: xcode12
 | |
|       language: node_js
 | |
|       node_js: "12"
 | |
|       cache:
 | |
|         npm: false
 | |
|       # Cache was disabled because when changing from node_js 10 to node_js 12
 | |
|       # it was still using build files from Node 10 when building SQLite which
 | |
|       # was making it fail. Might be ok to re-enable later on, although it doesn't
 | |
|       # make build that much faster.
 | |
|       #
 | |
|       # env:
 | |
|       #   - ELECTRON_CACHE=$HOME/.cache/electron
 | |
|       #   - ELECTRON_BUILDER_CACHE=$HOME/.cache/electron-builder
 | |
| 
 | |
|     - os: linux
 | |
|       sudo: required
 | |
|       dist: trusty
 | |
|       language: node_js
 | |
|       node_js: "12"
 | |
|       cache:
 | |
|         npm: false
 | |
|       # env:
 | |
|       #   - ELECTRON_CACHE=$HOME/.cache/electron
 | |
|       #   - ELECTRON_BUILDER_CACHE=$HOME/.cache/electron-builder
 | |
| 
 | |
| # cache:
 | |
| #   directories:
 | |
| #   - node_modules
 | |
| #   - $HOME/.cache/electron
 | |
| #   - $HOME/.cache/electron-builder
 | |
|  
 | |
| before_install:
 | |
|   # HOMEBREW_NO_AUTO_UPDATE needed so that Homebrew doesn't upgrade to the next
 | |
|   # version, which requires Ruby 2.3, which is not available on the Travis VM.
 | |
| 
 | |
|   # Silence apt-get update errors (for example when a module doesn't exist) since
 | |
|   # otherwise it will make the whole build fails, even though all we need is yarn.
 | |
| 
 | |
|   # libsecret-1-dev is required for keytar - https://github.com/atom/node-keytar
 | |
|   - |
 | |
|     if [ "$TRAVIS_OS_NAME" == "osx" ]; then
 | |
|       HOMEBREW_NO_AUTO_UPDATE=1 brew install yarn
 | |
|     else
 | |
|       curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
 | |
|       echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
 | |
|       sudo apt-get update || true
 | |
|       sudo apt-get install -y yarn
 | |
|       sudo apt-get install -y gettext
 | |
|       sudo apt-get install -y libsecret-1-dev
 | |
|     fi
 | |
| 
 | |
| script:
 | |
|   - |
 | |
|     # Prints some env variables
 | |
|     echo "TRAVIS_OS_NAME=$TRAVIS_OS_NAME"
 | |
|     echo "TRAVIS_BRANCH=$TRAVIS_BRANCH"
 | |
|     echo "TRAVIS_PULL_REQUEST=$TRAVIS_PULL_REQUEST"
 | |
|     echo "TRAVIS_TAG=$TRAVIS_TAG"
 | |
| 
 | |
|     # Install tools
 | |
|     npm install
 | |
| 
 | |
|     # Run test units.
 | |
|     # Only do it for pull requests because Travis randomly fails to run them
 | |
|     # and that would break the desktop release.
 | |
|     if [ "$TRAVIS_PULL_REQUEST" != "false" ] || [ "$TRAVIS_BRANCH" = "dev" ]; then
 | |
|       npm run test-ci
 | |
|       testResult=$?
 | |
|       if [ $testResult -ne 0 ]; then
 | |
|         exit $testResult
 | |
|       fi
 | |
|     fi
 | |
| 
 | |
|     # Run linter for pull requests only - this is so that
 | |
|     # bypassing eslint is allowed for urgent fixes.
 | |
|     if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then
 | |
|       npm run linter-ci ./
 | |
|       testResult=$?
 | |
|       if [ $testResult -ne 0 ]; then
 | |
|         exit $testResult
 | |
|       fi
 | |
|     fi
 | |
| 
 | |
|     # Validate translations - this is needed as some users manually
 | |
|     # edit .po files (and often make mistakes) instead of using a proper
 | |
|     # tool like poedit. Doing it for Linux only is sufficient.
 | |
|     if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then
 | |
|       if [ "$TRAVIS_OS_NAME" != "osx" ]; then
 | |
|         node packages/tools/validate-translation.js
 | |
|         testResult=$?
 | |
|         if [ $testResult -ne 0 ]; then
 | |
|           exit $testResult
 | |
|         fi
 | |
|       fi
 | |
|     fi
 | |
| 
 | |
|     # Find out if we should run the build or not. Electron-builder gets stuck when
 | |
|     # building PRs so we disable it in this case. The Linux build should provide
 | |
|     # enough info if the app builds or not.
 | |
|     # https://github.com/electron-userland/electron-builder/issues/4263
 | |
|     if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then
 | |
|       if [ "$TRAVIS_OS_NAME" == "osx" ]; then
 | |
|         exit 0
 | |
|       fi
 | |
|     fi
 | |
| 
 | |
|     # Prepare the Electron app and build it
 | |
|     #
 | |
|     # If the current tag is a desktop release tag (starts with "v", such as
 | |
|     # "v1.4.7"), we build and publish to github
 | |
|     #
 | |
|     # Otherwise we only build but don't publish to GitHub. It helps finding
 | |
|     # out any issue in pull requests and dev branch.
 | |
|     
 | |
|     cd packages/app-desktop
 | |
| 
 | |
|     if [[ $TRAVIS_TAG = v* ]]; then
 | |
|       USE_HARD_LINKS=false npm run dist
 | |
|     else
 | |
|       USE_HARD_LINKS=false npm run dist -- --publish=never
 | |
|     fi
 |