2017-08-12 10:38:36 +08:00
|
|
|
sudo: true
|
2017-02-22 05:59:27 +08:00
|
|
|
|
2017-08-12 03:05:58 +08:00
|
|
|
git:
|
|
|
|
submodules: false
|
|
|
|
|
2017-08-11 12:24:12 +08:00
|
|
|
language: node_js
|
|
|
|
|
|
|
|
node_js:
|
2022-02-28 12:19:28 +08:00
|
|
|
- '16'
|
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}
|
2017-08-12 00:20:46 +08:00
|
|
|
permissions: public-read
|
2017-08-11 14:36:44 +08:00
|
|
|
paths:
|
2019-03-27 13:02:39 +08:00
|
|
|
- Mailspring.dmg
|
|
|
|
- Mailspring.zip
|
|
|
|
- $(find . -type f -name mailspring-*.deb | tr "\n" ":")
|
|
|
|
- $(find . -type f -name mailspring-*.rpm | tr "\n" ":")
|
2021-04-14 12:23:18 +08:00
|
|
|
- $(find . -type f -name mailspring-*.snap | tr "\n" ":")
|
2021-04-15 02:30:30 +08:00
|
|
|
snaps:
|
|
|
|
- name: snapcraft
|
|
|
|
channel: candidate
|
|
|
|
confinement: classic
|
|
|
|
- name: transfer
|
|
|
|
- name: lxd
|
|
|
|
channel: stable
|
2017-08-11 14:36:44 +08:00
|
|
|
apt:
|
|
|
|
packages:
|
2022-04-18 10:20:33 +08:00
|
|
|
- execstack
|
|
|
|
- fakeroot
|
2021-04-14 12:21:47 +08:00
|
|
|
- rpm
|
2017-02-22 05:59:27 +08:00
|
|
|
|
|
|
|
branches:
|
|
|
|
only:
|
2019-03-27 13:02:39 +08:00
|
|
|
- master
|
2020-05-19 11:47:40 +08:00
|
|
|
- '/ci-.*/'
|
|
|
|
- '/stable.*/'
|
2017-02-22 05:59:27 +08:00
|
|
|
|
|
|
|
matrix:
|
|
|
|
include:
|
2019-03-27 13:02:39 +08:00
|
|
|
- os: linux
|
2023-11-20 11:21:43 +08:00
|
|
|
dist: bionic
|
2019-03-27 13:02:39 +08:00
|
|
|
- os: osx
|
2019-10-29 23:48:50 +08:00
|
|
|
osx_image: xcode10.1
|
2019-03-27 13:02:39 +08:00
|
|
|
env: CC=clang CXX=clang++ SIGN_BUILD=true
|
2017-02-22 05:59:27 +08:00
|
|
|
|
|
|
|
before_install:
|
2019-03-27 13:02:39 +08:00
|
|
|
# Decrypt and uncompress code signing certs, etc.
|
2021-04-14 12:32:01 +08:00
|
|
|
- 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
|
2019-03-27 13:02:39 +08:00
|
|
|
- mkdir app/build/resources/certs;
|
2021-04-14 12:32:01 +08:00
|
|
|
- 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" ]
|
2017-08-12 08:41:22 +08:00
|
|
|
|
2021-04-11 11:31:59 +08:00
|
|
|
# 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
|
|
|
|
|
2017-09-28 02:34:59 +08:00
|
|
|
before_script:
|
2021-04-14 12:21:47 +08:00
|
|
|
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then Xvfb :99 & export DISPLAY=:99.0; fi
|
2017-09-28 02:34:59 +08:00
|
|
|
|
2017-08-13 10:34:24 +08:00
|
|
|
script:
|
2019-03-27 13:02:39 +08:00
|
|
|
- npm run ci-setup-mac-keychain
|
|
|
|
- npm run lint
|
|
|
|
- DEBUG=electron-packager,electron-osx-sign npm run build
|
2017-02-22 05:59:27 +08:00
|
|
|
|
|
|
|
cache:
|
|
|
|
directories:
|
2019-03-27 13:02:39 +08:00
|
|
|
- node_modules
|
|
|
|
- app/node_modules
|
2017-10-06 03:38:23 +08:00
|
|
|
|
2017-10-20 14:48:04 +08:00
|
|
|
after_success:
|
2021-04-15 02:30:30 +08:00
|
|
|
# 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
|
2019-03-27 13:02:39 +08:00
|
|
|
# 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
|
2022-11-12 06:53:25 +08:00
|
|
|
- export SNAPCRAFT_STORE_CREDENTIALS=$(cat .snapcraft/credentials)
|
2017-10-06 03:38:23 +08:00
|
|
|
|
2021-04-15 02:30:30 +08:00
|
|
|
after_failure:
|
|
|
|
- test "$TRAVIS_OS_NAME" = "linux" && sudo journalctl -u snapd || true
|
2017-10-06 03:38:23 +08:00
|
|
|
|
2017-10-20 14:48:04 +08:00
|
|
|
deploy:
|
2020-05-19 11:47:40 +08:00
|
|
|
'on':
|
2017-10-20 14:48:04 +08:00
|
|
|
branch: master
|
|
|
|
condition: $TRAVIS_OS_NAME = linux
|
|
|
|
provider: script
|
2022-11-12 06:53:25 +08:00
|
|
|
script: sudo snapcraft push *.snap --release edge || true
|
2017-10-20 14:48:04 +08:00
|
|
|
skip_cleanup: true
|