diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..3096d298 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,51 @@ +matrix: + include: + - os: osx + osx_image: xcode9.2 + language: node_js + node_js: "8" + env: + - ELECTRON_CACHE=$HOME/.cache/electron + - ELECTRON_BUILDER_CACHE=$HOME/.cache/electron-builder + - ELECTRON_BUILDER_ALLOW_UNRESOLVED_DEPENDENCIES=true + + - os: linux + services: docker + language: generic + env: + - ELECTRON_BUILDER_ALLOW_UNRESOLVED_DEPENDENCIES=true + +cache: + directories: + - node_modules + - $HOME/.cache/electron + - $HOME/.cache/electron-builder + +before_install: + - | + if [ "$TRAVIS_OS_NAME" == "osx" ]; then + mkdir -p /tmp/git-lfs && curl -L https://github.com/github/git-lfs/releases/download/v2.3.1/git-lfs-$([ "$TRAVIS_OS_NAME" == "linux" ] && echo "linux" || echo "darwin")-amd64-2.3.1.tar.gz | tar -xz -C /tmp/git-lfs --strip-components 1 + export PATH="/tmp/git-lfs:$PATH" + fi +before_script: + - git lfs pull + +script: + - | + if [ "$TRAVIS_OS_NAME" == "linux" ]; then + docker run --rm \ + --env-file <(env | grep -iE 'DEBUG|NODE_|ELECTRON_|YARN_|NPM_|CI|CIRCLE|TRAVIS|APPVEYOR_|CSC_|_TOKEN|_KEY|AWS_|STRIP|BUILD_') \ + -v ${PWD}:/project \ + -v ~/.cache/electron:/root/.cache/electron \ + -v ~/.cache/electron-builder:/root/.cache/electron-builder \ + electronuserland/builder:wine \ + /bin/bash -c "npm install && npm run travislinux" + else + npm run travisdarwin + fi +before_cache: + - rm -rf $HOME/.cache/electron-builder/wine + +branches: + except: + - "/^v\\d+\\.\\d+\\.\\d+$/" \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 54267aee..0db109b0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1288,6 +1288,23 @@ "debug": "2.6.9", "mkdirp": "0.5.0", "yauzl": "2.4.1" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "mkdirp": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz", + "integrity": "sha1-HXMHam35hs2TROFecfzAWkyavxI=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + } } }, "extsprintf": { @@ -1969,10 +1986,9 @@ "dev": true }, "mkdirp": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz", - "integrity": "sha1-HXMHam35hs2TROFecfzAWkyavxI=", - "dev": true, + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "requires": { "minimist": "0.0.8" }, @@ -1980,8 +1996,7 @@ "minimist": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" } } }, diff --git a/package.json b/package.json index 03183698..a6c2d213 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,8 @@ "main": "index.js", "scripts": { "start": "electron index.js", + "travislinux": "electron-builder --linux --win", + "travisdarwin": "electron-builder --mac", "dist": "SET ELECTRON_BUILDER_ALLOW_UNRESOLVED_DEPENDENCIES=true & electron-builder", "dist:win": "npm run dist -- --win --x64", "dist:mac": "npm run dist -- --mac", @@ -17,12 +19,12 @@ }, "repository": { "type": "git", - "url": "git+https://gitlab.com/westeroscraft/electronlauncher.git" + "url": "git+https://github.com/WesterosCraftCode/ElectronLauncher.git" }, "author": "Daniel Scalzi", "license": "AGPL-3.0", "bugs": { - "url": "https://gitlab.com/westeroscraft/electronlauncher/issues" + "url": "https://github.com/WesterosCraftCode/ElectronLauncher/issues" }, "homepage": "http://www.westeroscraft.com/", "dependencies": { @@ -32,6 +34,7 @@ "ejs": "^2.5.7", "ejs-electron": "^2.0.1", "jquery": "^3.3.1", + "mkdirp": "^0.5.1", "request-promise-native": "^1.0.5", "tar-fs": "^1.16.0", "uuid": "^3.2.1", @@ -51,9 +54,23 @@ "output": "dist" }, "win": { - "target": "portable", + "target": [ + { + "target": "nsis", + "arch": "x64" + } + ], "icon": "build/icon.ico" }, + "nsis": { + "oneClick": false, + "perMachine": true, + "allowElevation": true, + "installerIcon": "build/icon.ico", + "uninstallerIcon": "build/icon.ico", + "installerHeader": "build/icon.ico", + "installerHeaderIcon": "build/icon.ico" + }, "mac": { "target": "dmg", "category": "public.app-category.games",