diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..c7003323 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,167 @@ +# validate config at https://config.travis-ci.com/explore +os: linux +dist: xenial +language: node_js +node_js: + - "10" +cache: yarn + +# platform specific configuration +jobs: + + # jobs which have to succeed + include: + # OS: MAC + ## -> build darwin + - name: "Standalone MacOS on MacOS" + os: osx + osx_image: xcode11.3 + before_install: + - HOMEBREW_NO_AUTO_UPDATE=1 brew install git-lfs + - HOMEBREW_NO_AUTO_UPDATE=1 brew install ffmpeg + script: + - cd gulp + - yarn gulp build.standalone-prod || travis_terminate 1 + - yarn gulp standalone.prepare + - yarn gulp standalone.package.prod.darwin64 + - cd .. + + ## -> build win + - name: "Standalone Windows on MacOS" + os: osx + osx_image: xcode11.3 + before_install: + - HOMEBREW_NO_AUTO_UPDATE=1 brew install git-lfs + - HOMEBREW_NO_AUTO_UPDATE=1 brew install ffmpeg + - HOMEBREW_NO_AUTO_UPDATE=1 brew cask install wine-stable + # prevent Wine popup dialogs about installing additional packages + - export WINEDLLOVERRIDES="mscoree,mshtml=" + - export WINEDEBUG="-all" + script: + - cd gulp + - yarn gulp build.standalone-prod || travis_terminate 1 + - yarn gulp standalone.prepare + - yarn gulp standalone.package.prod.win64 + - yarn gulp standalone.package.prod.win32 + - cd .. + + ## -> build linux + - name: "Standalone Linux on MacOS" + os: osx + osx_image: xcode11.3 + before_install: + - HOMEBREW_NO_AUTO_UPDATE=1 brew install git-lfs + - HOMEBREW_NO_AUTO_UPDATE=1 brew install ffmpeg + script: + - cd gulp + - yarn gulp build.standalone-prod || travis_terminate 1 + - yarn gulp standalone.prepare + - yarn gulp standalone.package.prod.linux64 + - yarn gulp standalone.package.prod.linux32 + - cd .. + + # OS: LINUX + ## -> build darwin + ## not possible + + ## -> build win + - name: "Standalone Windows on Linux" + os: linux + addons: + apt: + packages: + - libavformat-dev + - libavfilter-dev + - libavdevice-dev + - ffmpeg + - wine + script: + - cd gulp + - yarn gulp build.standalone-prod || travis_terminate 1 + - yarn gulp standalone.prepare + - yarn gulp standalone.package.prod.win64 + - yarn gulp standalone.package.prod.win32 + - cd .. + + ## -> build linux + - name: "Standalone Linux on Linux" + os: linux + addons: + apt: + packages: + - libavformat-dev + - libavfilter-dev + - libavdevice-dev + - ffmpeg + script: + - cd gulp + - yarn gulp build.standalone-prod || travis_terminate 1 + - yarn gulp standalone.prepare + - yarn gulp standalone.package.prod.linux64 + - yarn gulp standalone.package.prod.linux32 + - cd .. + + # OS: WINDOWS + ## -> build darwin + ## not possible + + ## -> build linux + - name: "Standalone Linux on Windows" + os: windows + env: YARN_GPG=no + before_install: + - choco install git-lfs -y -f || echo "0" # choco fails but git-lfs is still installed + - choco install ffmpeg + - export PATH=/C/ProgramData/chocolatey/lib/ffmpeg/tools/ffmpeg/bin:$PATH + - wget https://github.com/moiamond/docker-ffmpeg-base-windowsservercore/raw/master/System32/avicap32.dll -P /C/Windows/System32/ + - wget https://github.com/moiamond/docker-ffmpeg-base-windowsservercore/raw/master/System32/msvfw32.dll -P /C/Windows/System32/ + script: + - cd gulp + - yarn gulp build.standalone-prod || travis_terminate 1 + - yarn gulp standalone.prepare + - yarn gulp standalone.package.prod.linux64 + - yarn gulp standalone.package.prod.linux32 + - cd .. + + ## -> build win + - name: "Standalone Windows on Windows" + os: windows + env: YARN_GPG=no + before_install: + - choco install git-lfs -y -f || echo "0" # choco fails but git-lfs is still installed + - choco install ffmpeg + - choco install wget + - export PATH=/C/ProgramData/chocolatey/lib/ffmpeg/tools/ffmpeg/bin:$PATH + - wget https://github.com/moiamond/docker-ffmpeg-base-windowsservercore/raw/master/System32/avicap32.dll -P /C/Windows/System32/ + - wget https://github.com/moiamond/docker-ffmpeg-base-windowsservercore/raw/master/System32/msvfw32.dll -P /C/Windows/System32/ + script: + - cd gulp + - yarn gulp build.standalone-prod || travis_terminate 1 + - yarn gulp standalone.prepare + - yarn gulp standalone.package.prod.win64 + - yarn gulp standalone.package.prod.win32 + - cd .. + + # mark build as finished even if "allow_failures" are still running + fast_finish: true + + # optional jobs which may fail + #allow_failures: + # - name: "" + +# shared +install: + - git lfs install + - git lfs pull + + - yarn + + # electron dependencies + - cd electron + - yarn + - cd .. + + # gulp dependendencies + - cd gulp + - yarn + - cd .. diff --git a/electron/favicon.icns b/electron/favicon.icns new file mode 100644 index 00000000..d40d7f21 Binary files /dev/null and b/electron/favicon.icns differ diff --git a/gulp/standalone.js b/gulp/standalone.js index 00d2b685..d0dee399 100644 --- a/gulp/standalone.js +++ b/gulp/standalone.js @@ -21,8 +21,11 @@ function gulptasksStandalone($, gulp, buildFolder) { path.join(electronBaseDir, "lib", "**", "*.node"), path.join(electronBaseDir, "node_modules", "**", "*.*"), path.join(electronBaseDir, "node_modules", "**", ".*"), - path.join(electronBaseDir, "node_modules", "**", "*"), path.join(electronBaseDir, "favicon*"), + + // fails on platforms which support symlinks + // https://github.com/gulpjs/gulp/issues/1427 + // path.join(electronBaseDir, "node_modules", "**", "*"), ]; return gulp.src(requiredFiles, { base: electronBaseDir }).pipe(gulp.dest(tempDestBuildDir)); });