sudo: true git: submodules: false language: node_js node_js: - '16' addons: artifacts: working_dir: app/dist target_paths: client/${TRAVIS_COMMIT:0:8}/${TRAVIS_OS_NAME} permissions: public-read paths: - Mailspring.zip - $(find . -type f -name mailspring-*.deb | tr "\n" ":") - $(find . -type f -name mailspring-*.rpm | tr "\n" ":") - $(find . -type f -name mailspring-*.snap | tr "\n" ":") snaps: - name: snapcraft channel: candidate confinement: classic - name: transfer - name: lxd channel: stable apt: sources: - ubuntu-toolchain-r-test packages: - execstack - fakeroot - g++-10 - rpm branches: only: - master - '/ci-.*/' - '/stable.*/' matrix: include: - os: linux dist: bionic env: CC=gcc-10 CXX=g++-10 - os: osx osx_image: xcode13.1 env: CC=clang CXX=clang++ SIGN_BUILD=true before_install: # Decrypt and uncompress code signing certs, etc. - if [ -n "$encrypted_faf2708e46e2_key" ] || [ "$TRAVIS_REPO_SLUG" = "Foundry376/Mailspring" ]; then openssl aes-256-cbc -K $encrypted_faf2708e46e2_key -iv $encrypted_faf2708e46e2_iv -in app/build/resources/certs.tar.enc -out app/build/resources/certs.tar -d; fi - mkdir app/build/resources/certs; - tar xvf app/build/resources/certs.tar --directory=app/build/resources/ || [ "$TRAVIS_REPO_SLUG" != "Foundry376/Mailspring" ] - source app/build/resources/certs/mac/set_unix_env.sh || [ "$TRAVIS_REPO_SLUG" != "Foundry376/Mailspring" ] # Resolves https://travis-ci.community/t/npm-ci-will-fail-if-cached-dependency-includes-npm/4203/6 # Don't run the copy of npm inside node_modules when erasing + building the node_modules... install: PATH=$(echo "$PATH" | sed 's/.\/node_modules\/.bin://') npm ci before_script: - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then Xvfb :99 & export DISPLAY=:99.0; fi script: - npm run ci-setup-mac-keychain - npm run lint - DEBUG=electron-packager,electron-osx-sign npm run build cache: directories: - node_modules - app/node_modules after_success: # Prepare the snapcraft environment - sudo /snap/bin/lxd.migrate -yes - sudo /snap/bin/lxd waitready - sudo /snap/bin/lxd init --auto - mkdir -p "$TRAVIS_BUILD_DIR/snaps-cache" - sudo SNAPCRAFT_ENABLE_DEVELOPER_DEBUG=y /snap/bin/snapcraft --use-lxd - timeout 180 sudo /snap/bin/transfer *.snap # Decrypt the snapcraft login information - openssl aes-256-cbc -K $encrypted_3a103488aae7_key -iv $encrypted_3a103488aae7_iv -in .snapcraft/credentials.enc -out .snapcraft/credentials -d - export SNAPCRAFT_STORE_CREDENTIALS=$(cat .snapcraft/credentials) after_failure: - test "$TRAVIS_OS_NAME" = "linux" && sudo journalctl -u snapd || true deploy: 'on': branch: master condition: $TRAVIS_OS_NAME = linux provider: script script: sudo snapcraft push *.snap --release edge || true skip_cleanup: true