diff --git a/.appveyor.yml b/.appveyor.yml index aed1a16..f8818ab 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -26,7 +26,6 @@ install: - ps: Remove-Item __MACOSX -Recurse -ErrorAction Ignore - ps: cd ../.. - ps: Tree ./src /F - - ps: $env:DEBUG="*" cache: - '%APPDATA%\npm-cache -> appveyor.yml' diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..3c30d99 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,57 @@ +language: node_js +node_js: "12" +os: +- linux +- osx +dist: trusty +osx_image: xcode8.3 +sudo: false + +cache: + directories: + - node_modules + - $HOME/.cache/electron + +addons: + apt: + packages: + - fakeroot + - rpm + +branches: + only: + - master + - /^v\d+\.\d+\.\d+/ + +install: +- npm install +- | + if [[ "$TRAVIS_OS_NAME" == "osx" && "$TRAVIS_SECURE_ENV_VARS" == "true" ]]; then + export CERTIFICATE_P12=cert.p12; + echo $MACOS_CERT_P12 | base64 --decode > $CERTIFICATE_P12; + export KEYCHAIN=build.keychain; + # Create the keychain with a password + security create-keychain -p travis $KEYCHAIN; + # Make the custom keychain default, so xcodebuild will use it for signing + security default-keychain -s $KEYCHAIN; + # Unlock the keychain + security unlock-keychain -p travis $KEYCHAIN; + # Add certificates to keychain and allow codesign to access them + # Apple Worldwide Developer Relations Certification Authority + security import ./tools/certs/apple.cer -k ~/Library/Keychains/$KEYCHAIN -T /usr/bin/codesign + # Developer Authentication Certification Authority + security import ./tools/certs/dac.cer -k ~/Library/Keychains/$KEYCHAIN -T /usr/bin/codesign + # Developer ID Felix + security import $CERTIFICATE_P12 -k $KEYCHAIN -P $MACOS_CERT_PASSWORD -T /usr/bin/codesign 2>&1 >/dev/null; + rm $CERTIFICATE_P12; + security set-key-partition-list -S apple-tool:,apple: -s -k travis $KEYCHAIN + # Echo the identity + security find-identity -v -p codesigning + fi +script: +- npm run lint +- npm run test:ci +- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then npm run test:coverage; fi +- if test -z "$TRAVIS_TAG"; then npm run make; fi + +after_success: if test -n "$TRAVIS_TAG"; then npm run publish; fi