mirror of
https://github.com/serverless/serverless.git
synced 2026-02-01 16:07:28 +00:00
129 lines
5.9 KiB
YAML
129 lines
5.9 KiB
YAML
language: node_js
|
|
|
|
git:
|
|
# Minimize git history, but ensure to not break things:
|
|
# - Merging multiple PR's around same time may introduce a case where it's not
|
|
# the last merge commit that is to be tested
|
|
depth: 10
|
|
|
|
cache:
|
|
# Not relying on 'npm' shortcut, as per Travis docs it's the only 'node_modules' that it'll cache
|
|
directories:
|
|
- $HOME/.npm
|
|
- node_modules
|
|
|
|
# Ensure to install dependencies at their latest versions
|
|
install:
|
|
# Note: with `npm update` there seems no way to update all project dependency groups in one run
|
|
- npm update --no-save # Updates just dependencies
|
|
# Note: npm documents --dev option for dev dependencies update, but it's only --save-dev that works
|
|
- npm update --save-dev --no-save # Updates just devDependencies
|
|
|
|
branches:
|
|
only:
|
|
- master # Do not build PR branches
|
|
- /^v\d+\.\d+\.\d+$/ # Ensure to build release tags
|
|
|
|
env:
|
|
global:
|
|
- SLS_IGNORE_WARNING=*
|
|
- FORCE_COLOR=1 # Ensure colored output (color support is not detected in some cases)
|
|
|
|
stages:
|
|
- name: Test
|
|
- name: Integration Test
|
|
if: branch = master AND type = push
|
|
- name: Deploy
|
|
if: tag =~ ^v\d+\.\d+\.\d+$
|
|
|
|
before_script:
|
|
# Fail build right after first script fails. Travis doesn't ensure that: https://github.com/travis-ci/travis-ci/issues/1066
|
|
# More info on below line: https://www.davidpashley.com/articles/writing-robust-shell-scripts/#idm5413512
|
|
- set -e
|
|
|
|
# Ensure to fail build if deploy fails, Travis doesn't ensure that: https://github.com/travis-ci/travis-ci/issues/921
|
|
before_deploy:
|
|
# Remove eventual old npm logs
|
|
- rm -rf ~/.npm/_logs
|
|
after_deploy:
|
|
- |
|
|
# npm creates log only on failure
|
|
if [ -d ~/.npm/_logs ]; then
|
|
# Undocumented way to force Travis build to fail
|
|
travis_terminate 1
|
|
fi
|
|
|
|
jobs:
|
|
include:
|
|
# In most cases it's best to configure one job per Platform & Node.js version combination
|
|
# (job boot & setup takes ca 1 minute, one task run usually lasts seconds)
|
|
|
|
# PR's
|
|
- name: 'Prettier check updated, Lint updated, Unit Tests - Linux - Node.js v12'
|
|
if: type = pull_request
|
|
node_js: 12
|
|
script:
|
|
- npm run prettier-check-updated
|
|
- npm run lint-updated
|
|
- npm test
|
|
|
|
# master branch and version tags
|
|
- name: 'Lint, Unit Tests - Linux - Node.js v12'
|
|
if: type != pull_request
|
|
node_js: 12
|
|
script:
|
|
- npm run lint
|
|
- npm test
|
|
|
|
- name: 'Unit Tests - Windows - Node.js v12'
|
|
os: windows
|
|
node_js: 12
|
|
before_install:
|
|
# Ensure Python 2 in Windows enviroment (Ruby is already preinstalled)
|
|
- |
|
|
if [ $TRAVIS_OS_NAME = windows ]
|
|
then
|
|
choco install python2 &&
|
|
export PATH="/c/Python27:/c/Python27/Scripts:$PATH"
|
|
fi
|
|
|
|
- name: 'Isolated Unit Tests, Package Integration Tests - Linux - Node.js v10'
|
|
node_js: 10
|
|
script:
|
|
- npm run test-isolated
|
|
- npm run integration-test-run-package
|
|
|
|
- name: 'Unit Tests, Coverage - Linux - Node.js v8'
|
|
node_js: 8
|
|
script: npm run coverage
|
|
after_success:
|
|
- cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js
|
|
- rm -rf ./coverage
|
|
|
|
- name: 'Unit Tests - Linux - Node.js v6'
|
|
node_js: 6
|
|
|
|
- stage: Integration Test
|
|
name: 'Integration Tests - Linux - Node.js v12'
|
|
node_js: 12
|
|
env:
|
|
# AWS_ACCESS_KEY_ID
|
|
- secure: Ia2nYzOeYvTE6qOP7DBKX3BO7s/U7TXdsvB2nlc3kOPFi//IbTVD0/cLKCAE5XqTzrrliHINSVsFcJNSfjCwmDSRmgoIGrHj5CJkWpkI6FEPageo3mdqFQYEc8CZeAjsPBNaHe6Ewzg0Ev/sjTByLSJYVqokzDCF1QostSxx1Ss6SGt1zjxeP/Hp4yOJn52VAm9IHAKYn7Y62nMAFTaaTPUQHvW0mJj6m2Z8TWyPU+2Bx6mliO65gTPFGs+PdHGwHtmSF/4IcUO504x+HjDuwzW2itomLXZmIOFfGDcFYadKWzVMAfJzoRWOcVKF4jXdMoSCOviWpHGtK35E7K956MTXkroVoWCS7V0knQDovbRZj8c8td8mS4tdprUA+TzgZoHet2atWNtMuTh79rdmwoAO+IAWJegYj62Tdfy3ycESzY+KxSaV8kysG9sR3PRFoWjZerA7MhLZEzQMORXDGjJlgwLaZfYVqjlsGe5p5etFBUTd0WbFgSwOKLoA2U/fm7WzqItkjs3UWaHuvFVvwYixGxjEVmVczS6wa2cdGpHtVD9H7km4fPEzljHqQ26v0P5e8eylgqLF2IB6mL7UqGFrAtrMvAgN/M3gnq4dTs/wq1AJIOxEP7YW7kc0NAldk8vUz6t5GzCPNcuukxAku91Awnh0twxgUywatgJLZPY=
|
|
# AWS_SECRET_ACCESS_KEY
|
|
- secure: Dgaa5XIsA5Vbw/CYQLUAuVVsDX26C8+f1XYGwsbNmFQKbKvM8iy9lGrHlfrT3jftJkJH6re8tP1RjyZjjzLe25KPk4Tps7grNteCyiIIEDsC2aHhiXHD6zNHsItpxYusaFfyQinFWnK4CAYKWb9ZNIwHIDUIB4vq807QGAhYsnoj1Lg/ajWvtEKBwYjEzDz9OjB91lw7lpCnHtmKKw5A+TNIVGpDDZ/jRBqETsPaePtiXC9UTHZQyM3gFoeVXiJw9KSU/gjIx9REihCaWWPbnuQSeIONGGlVWY9V4DTZIsJr9/uwDcbioeXDD3G1ezGtNPPRSNTtq08QlUtE4mEtKea/+ObpllKZCeZGn6AJhMn+uqMIP95FFlqBB55YzRcLZY+Igi/qm/9LJ9RinAhxRVXiwzeQ+BdVA6jshAAzr+7wklux6lZAa0xGw9pgTv7MI4RP2LJ/LMP1ppFsnv9n/qt93Ax1VEwEu3xHZe3VTYL9tbXOPTZutf6fKjUrW7wSSuy637queESjYnnPKSb1vZcPxjSFlyh+GJvxu/3PurF9aqfiBdiorIBre+pQS4lakLtoft5nsbA+4iYUwrXR58qUPVUqQ7a0A0hedOWlp6g9ixLa6nugUP5aobJzR71T8l/IjqpnY2EEd/iINEb0XfUiZtB5zHaqFWejBtmWwCI=
|
|
script:
|
|
- npm run integration-test-run-basic || { npm run integration-test-cleanup; exit 1; }
|
|
- npm run integration-test-run-all || { npm run integration-test-cleanup; exit 1; }
|
|
- npm run integration-test-cleanup
|
|
|
|
- stage: Deploy
|
|
node_js: 12
|
|
script: skip
|
|
deploy:
|
|
provider: npm
|
|
email: services@serverless.com
|
|
on:
|
|
tags: true
|
|
api_key:
|
|
secure: EgoetjrRlGfvGnmVp8A0btr1CzB0hl7owVIpbfk4zXJzhGEbHoVu0CG0IdmyLN+JlaZa7EDJTjkDCd6g3fVAh9TT7ZCeaq8YwbZDrql7mAJj7xYQAyM4eSkc95BRzcFJBx7Mxr6H90IDLxKr6ZtB+HEdiHN+59XbepKYYJeb1jHfnKn5xzOqk4BdnZo6pKfudfeO+7/BwJJ0FwlFA40bY2HS/Lp+NG/2IedNR7k3m/5W83/XH5qlWP8jhBKlxrAzks27aNo+42xHkRCVyPViJKq0mfz1hl2bfswChWHgaCuajp+0amNL39pgIX9eXxFc3bNX9Iftox5t31elEhsw06vvuAaVkKEd+VEMaDySbQ9M+irKZeREg+NFYZLnc2WiEE3Sexo6hm9eM2q2KEZ7bleN9B0CQAut1XXLRQEts80rzss4Z2Q7AZb9cOYBQlj9Wf1X0Y74UqvnDn83a4Y38a+lhx7J2q691ZeM1UFSCdO0QfeJRkB55bSyHqUqrLAqUN7eNsKGdBH0kvYIGFREgGgReEpBRAuNqWuJ/5qexp63Kbf+09raG5IvfxSIM5fJ5KE5VxSduBdRnSH0GNKfjuq296/Rg4fmm/bygZ3Yk5L6Wd41SUU8uHzlZFBwtcvxAKDTQe6s+5JU24ilqxOx6J4Ut34X3dIbLLAmoB1ogdM=
|