Mailspring/.travis.yml

107 lines
3.6 KiB
YAML
Raw Normal View History

sudo: true
2017-02-22 05:59:27 +08:00
git:
submodules: false
2017-08-11 12:24:12 +08:00
language: node_js
node_js:
- '11'
2017-08-11 12:24:12 +08:00
2017-02-22 05:59:27 +08:00
addons:
2017-08-11 14:36:44 +08:00
artifacts:
working_dir: app/dist
target_paths: client/${TRAVIS_COMMIT:0:8}/${TRAVIS_OS_NAME}
permissions: public-read
2017-08-11 14:36:44 +08:00
paths:
- mailsync.tar.gz
- Mailspring.dmg
- Mailspring.zip
- $(find . -type f -name mailspring-*.deb | tr "\n" ":")
- $(find . -type f -name mailspring-*.rpm | tr "\n" ":")
2017-08-11 14:36:44 +08:00
apt:
sources:
- ubuntu-toolchain-r-test
2017-08-11 14:36:44 +08:00
packages:
- build-essential
- clang
- execstack
- fakeroot
- g++-4.8
- git
- libgnome-keyring-dev
- libsecret-1-dev
- xvfb
- rpm
- libxext-dev
- libxtst-dev
- libxkbfile-dev
2017-02-22 05:59:27 +08:00
branches:
only:
- master
- '/ci-.*/'
- '/stable.*/'
2017-02-22 05:59:27 +08:00
matrix:
include:
- os: linux
env: CC=gcc-4.8 CXX=g++-4.8
dist: trusty
- os: osx
osx_image: xcode10.1
env: CC=clang CXX=clang++ SIGN_BUILD=true
2017-02-22 05:59:27 +08:00
before_install:
# Decrypt and uncompress code signing certs, etc.
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install cmake execstack g++-5 autoconf automake libtool libc-ares-dev libctemplate-dev libcurl4-openssl-dev libicu-dev libxext-dev libsasl2-dev libsasl2-modules libsasl2-modules-gssapi-mit libssl-dev libtidy-dev libxtst-dev libxkbfile-dev libglib2.0-dev libxml2-dev uuid-dev; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then export CC=gcc-5 CXX=g++-5; fi
- 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;
- mkdir app/build/resources/certs;
- tar xvf app/build/resources/certs.tar --directory=app/build/resources/;
- source app/build/resources/certs/mac/set_unix_env.sh;
# Checkout the (currently private) C++ Mailsync codebase
- GIT_SSH_COMMAND='ssh -i app/build/resources/certs/mailsync-deploy-key -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no'
SSH_ASKPASS=/Users/travis/build/Foundry376/Mailspring/app/build/resources/certs/ssh-askpass-fix
DISPLAY=nothing:0
git submodule update --init mailsync
# 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 export DISPLAY=:99.0; sh -e /etc/init.d/xvfb start; fi
script:
- npm run ci-setup-mac-keychain
- npm run lint
- mailsync/build.sh
- mv ./mailsync ./mailsync-src
- DEBUG=electron-packager,electron-osx-sign npm run build
2017-02-22 05:59:27 +08:00
cache:
directories:
- node_modules
- app/node_modules
- /tmp/mailsync-build-deps-v2
- /var/lib/docker/aufs
after_success:
# Grab the version number from the .deb product and update the snapcraft.yml file
- sed "s/MAILSPRING_VERSION/$(grep -E -o '([0-9]+.[0-9]+.[0-9]+)' <<< "$(find app/dist -type f -name mailspring-*.deb)")/g" snap/snapcraft.template.yaml > snap/snapcraft.yaml
# Decrypt the snapcraft login information
2021-01-20 02:14:41 +08:00
- openssl aes-256-cbc -K $encrypted_d506bd5213c4_key -iv $encrypted_d506bd5213c4_iv -in .snapcraft/credentials.enc -out .snapcraft/credentials -d
services:
- docker
deploy:
'on':
branch: master
condition: $TRAVIS_OS_NAME = linux
provider: script
script: docker run -v $(pwd):$(pwd) -t snapcore/snapcraft sh -c "apt update -qq && cd $(pwd) && snapcraft && snapcraft login --with .snapcraft/credentials && (snapcraft push *.snap --release edge || true)"
skip_cleanup: true