mirror of
https://github.com/danog/dart-sass.git
synced 2024-11-27 12:44:42 +01:00
830bb3aab2
* Move Node tests on Windows to Travis Appveyor is flaky and can't be restarted by all team members, so moving everything to Travis is preferable if we can get it to work. * Actually use latest stable Node This should also workaround the issue with lts/* not working on Windows. * Use npm.cmd instead of raw npm on Windows * Use p.prettyUri() for Node API tests Co-authored-by: Natalie Weizenbaum <nweiz@google.com>
235 lines
9.0 KiB
YAML
235 lines
9.0 KiB
YAML
## Testing
|
|
|
|
language: shell
|
|
|
|
env:
|
|
global:
|
|
- DART_CHANNEL=stable
|
|
- DART_VERSION=latest
|
|
|
|
# Only building master means that we don't run two builds for each pull request.
|
|
branches:
|
|
only:
|
|
- master
|
|
# Feature branches beginning with "feature."
|
|
- "/^feature\\..*/"
|
|
# Semantic version tags and legacy branches of the form "1.2.x".
|
|
- "/^\\d+\\.\\d+\\.(\\d+([+-].*)?|x)$/"
|
|
|
|
cache:
|
|
directories:
|
|
- $HOME/.pub-cache
|
|
|
|
# Install the Dart SDK.
|
|
before_install:
|
|
- tool/travis/use_dart.sh
|
|
- export PATH="$PATH:`pwd`/dart-sdk/bin";
|
|
- dart --version
|
|
|
|
jobs:
|
|
include:
|
|
## Testing
|
|
|
|
# Language specs, defined in sass/sass-spec. These need Ruby to run the spec
|
|
# runner.
|
|
- &specs
|
|
name: sass-spec | Dart stable | synchronous
|
|
language: ruby
|
|
# Work around an issue where bundler isn't installed correctly on Ruby 2.5.
|
|
# We should remove this, and the explicit "gem install bundler" line, once
|
|
# Travis uses Ruby 2.6 by default.
|
|
rvm: 2.6
|
|
install:
|
|
- export sass_spec_ref=`tool/travis/sass-spec-ref.sh`
|
|
- git init sass-spec
|
|
- git -C sass-spec fetch git://github.com/sass/sass-spec "$sass_spec_ref" --depth 1
|
|
- git -C sass-spec checkout FETCH_HEAD
|
|
- gem install bundler
|
|
- bundle install --gemfile=sass-spec/Gemfile --jobs=3 --retry=3
|
|
script: tool/travis/task/specs.sh
|
|
- <<: *specs
|
|
name: sass-spec | Dart dev | synchronous
|
|
env: DART_CHANNEL=dev
|
|
- <<: *specs
|
|
name: sass-spec | Dart stable | asynchronous
|
|
env: ASYNC=true
|
|
|
|
# Pure Dart unit tests, defined in test/.
|
|
- &dart-tests
|
|
name: Dart tests | Dart stable
|
|
install: pub run grinder pkg-standalone-dev
|
|
script: tool/travis/task/dart_tests.sh
|
|
- <<: *dart-tests
|
|
name: Dart tests | Dart dev
|
|
env: DART_CHANNEL=dev
|
|
- <<: *dart-tests
|
|
os: windows
|
|
env: DART_CHANNEL=stable
|
|
- <<: *dart-tests
|
|
os: osx
|
|
|
|
# Unit tests that use Node.js, defined in test/.
|
|
#
|
|
# The versions should be kept up-to-date with the latest LTS Node releases.
|
|
# They next need to be rotated April 2021. See
|
|
# https://github.com/nodejs/Release.
|
|
- &node-tests
|
|
name: Node tests | Dart stable | Node stable
|
|
language: node_js
|
|
node_js: node
|
|
install: pub run grinder before-test
|
|
script: tool/travis/task/node_tests.sh
|
|
- <<: *node-tests
|
|
name: Node tests | Dart stable | Node Dubnium
|
|
node_js: lts/dubnium
|
|
- <<: *node-tests
|
|
name: Node tests | Dart stable | Node Erbium
|
|
node_js: lts/erbium
|
|
- <<: *node-tests
|
|
os: windows
|
|
- <<: *node-tests
|
|
os: osx
|
|
- <<: *node-tests
|
|
name: Node tests | Dart dev | Node stable
|
|
env: DART_CHANNEL=dev
|
|
|
|
# Miscellaneous checks.
|
|
- name: static analysis
|
|
language: dart
|
|
dart_task: {dartanalyzer: --fatal-warnings --fatal-infos lib tool test}
|
|
|
|
# TODO(jathak): Re-enable this once dart-lang/dart_style#940 is fixed.
|
|
# - name: code formatting
|
|
# language: dart
|
|
# dart_task: dartfmt
|
|
|
|
## Deployment
|
|
|
|
# Sanity check before releasing anywhere.
|
|
- stage: sanity check
|
|
if: &deploy-if
|
|
(type IN (push, api)) AND (repo = sass/dart-sass) AND tag =~ ^\d+\.\d+\.\d+([+-].*)?$
|
|
script: pub run grinder sanity-check-before-release
|
|
|
|
# Deploy Linux releases to GitHub. Mac OS and Windows releases are deployed in
|
|
# a later stage so that we can build native snapshots on bots with the same
|
|
# operating system.
|
|
- stage: deploy 1
|
|
name: "GitHub: Linux"
|
|
if: *deploy-if
|
|
env: &github-env
|
|
- GITHUB_USER=sassbot
|
|
# GITHUB_TOKEN="..."
|
|
#
|
|
# Note that this overrides the read-only auth token that's set for all
|
|
# builds.
|
|
- secure: "jTN3v1KndVb29vWAIk4fnw9gcCIJ/6RWhUhk739GHdmsqWI85c8Ibjl3mwT4XYaOZv0KnfvcORFOpYCUkd4FcR7ihp5Dq44oE503IqBi55xvBct1lkan/5jE+KA/RkfvLcnkuHeV+gGJAYIde9lPPW8iTBfGbTmQPCsV3ZTcguXnt8gNc0P0KA6823Ubmim6bSSevUgK8uzospBqqKTqpedFZQBAW9DzsoMtNRhiR8da96L/AN3qixuqlJcraXVoqygNd70WW9LJuFXRFsJwDsyLmzRd4mbHcEqfu4z7Vvh0tqc4eQxvfJqal3wGe3/y15FlNNzGtn7jBa8XW7/hEBWDRWch8OsFSEwHP2cT5G9vOW6PswPTB6lJJViKAoxQLgjRfvnMcyqR+fgzGWKN5nC2cLgdV8R1zTrc8mReXuZclXZceP0Qkq1COf8zj52ip/P0FVuFLd99Wfy5BWmlgVu6xaX8j4/EblE0sT0KiH8Si8+ftUtQwiZE5oZnJ6vHzJwKO7C0uUEInStOr00ZzFQ2Jej3PB+yTdl5POCz9cHHSJpyUNvB55E8qsOZp7wKG9Md8we5IFs3WTSLrdhSJZ6xTawnWO0x08SYGr6Wym98wI7J/FyOD23X5AT1UwSIlflvpJLVBBKnKLQRdWrXofnv4NkmzlpBr2stBfBfpeA="
|
|
script: skip # Don't run tests
|
|
deploy:
|
|
provider: script
|
|
script: pub run grinder pkg-github-release pkg-github-linux
|
|
skip_cleanup: true # Don't clean up the Dart SDK.
|
|
|
|
# This causes the deploy to only be build when a tag is pushed. This
|
|
# is because the `tag` attribute in `if:` statements has a different
|
|
# understanding of the "current tag" than this, which uses the
|
|
# `TRAVIS_TAG` environment variable. `if:` statements check whether a
|
|
# tag exists that refers to the current commit, whereas `TRAVIS_TAG`
|
|
# checks whether the current build was caused by a tag.
|
|
#
|
|
# We check `if:` because it avoids unnecessary build steps, and
|
|
# `on: {tags: true}` ensures that we only deploy on the build caused
|
|
# by pushing a tag, not the build caused by pushing master.
|
|
on: {tags: true}
|
|
|
|
# Deploy to npm.
|
|
- name: npm
|
|
if: *deploy-if
|
|
env:
|
|
# NPM_TOKEN="..."
|
|
- secure: "pwOMlV/hUTYYKrdULkhM0pHKCjXR1uWAuBbfxMxWCPH/AGkW3CP/WED8p5/Q6B8Itzca6eYg85PnkzeLl4hK9ANnYrQsHutfszGyzcqqAeWWPXm3Bq6Rqt5XpA4JCSdZBPKOLZ7yGzMCPVRMAet4fvORRU6nFCTJcm/B1JZNIAWY5TnjgcjwLa77Eo4Bflv58CTA5FyngN7hAMIo2JaassmReRHxtyVBh631IYFBvmo8vmC0gruPY0axj9a/4+F1Nx2ChOAjji0SRMJP1FSp7zOXCG+VrcqXMW3KCfBu/70szcdDVXOYYyJpCeiP6vVtRgi+9zqin9wOATIklRPMTy/zVbT4r9kfA7+GFSfsfAQ7K79VbvJQHbxon3E5JnWANjZr3q+iicX+sElL6IngoSw8pXRUHVJD979WcPTcKX+dd2KKqDR0S+rG8d7ZgyjIggCSGsyxvuX0vd/VaPmZA/4+tVfSHYxCq3P3sncVX9raP41UNFW9KyEQzKfxTs6I4U5IffFcLZRRoP1uMSdiru9cIvVCX64UTk6+TTiPXRj4o84dG/NQkYoc3EhHsRL4E7SAq827Ya1gA8GLSCJidtvGPG16VimvgT372pHPZ+l9Pb5XkMnZ+dji3o37xYTSbRESOk+pnMwq3f4lQz6YFuI+EjbO5RYCs5IxHjgW8Ak="
|
|
script: skip
|
|
language: node_js
|
|
node_js: lts/*
|
|
deploy:
|
|
provider: script
|
|
script: pub run grinder pkg-npm-deploy
|
|
skip_cleanup: true
|
|
on: {tags: true}
|
|
|
|
# Deploy to pub.
|
|
- name: pub
|
|
if: *deploy-if
|
|
env:
|
|
# PUB_CREDENTIALS="..."
|
|
- secure: "L7p8nH1qhGbOdqXZSPJzaC4wv1Rf4gJUiPpy2e0pgkk78jFyaLJ4Vt6c/976hQxETZQ8q1mChj7xrgEI4d6rN+iBEDSdgCiV+toVVYCzX9gnzb8+a5qTBbRNLrcC4jPr5+6LPK+qklrAyYi56JCYI2CgCOxUzo/CHOk/nHbEWwxMoD5Ifzat3NXwyb/9RKHH/4YYBi2PRkBrIuGTvZi4VqyIJ7AJu8eCZYPD8e1ij5muLhTxgQvycIf6fkSBbhMoC/ULExkV3zFEgY1eU/UMdXPR68/qgne+q0ph4K5ArTgFoPAVVIDYv4CZfpx2NVEpluWz2OQ/Lr+VxTqAYMGDCEEreeTTTE26JFCquUwSypNBSo7jtAoMtFDrX3fwa0jt9lhkwTMlEQtLg3ykpABsn7E4nEYw6K3hAqjV5kJFdgNFqli83QpXXu9mfUtif7Wzlekiw6DuN7FKTr8VohaqlVgp5gSExp/zuFCOFQn3+LnzxZtFJbkiQw0Bbii4TBwrASrhvNcPE/CrCbq0OLrNYrJH8UiLsZGoz1iAuPyCvbpiD7eXrL4vodR73IGUBx2hKTbolP8EWseR/nw4InH50kc+jhDMaT+Lj34q+9Icv2Q4ICWsPky7NhLDJWvLntiExwkos4fPtmr5SuaV/dCVox1Qvkzg7NBoqihrdQC8Tak="
|
|
script: skip
|
|
deploy:
|
|
provider: script
|
|
script: pub run grinder pkg-pub-deploy
|
|
skip_cleanup: true
|
|
on: {tags: true}
|
|
|
|
# Deploy to Homebrew.
|
|
- name: Homebrew
|
|
if: *deploy-if
|
|
env: *github-env
|
|
script: skip
|
|
deploy:
|
|
provider: script
|
|
script: pub run grinder pkg-homebrew-update
|
|
skip_cleanup: true
|
|
on: {tags: true}
|
|
|
|
# Redeploy sass-lang.com.
|
|
- name: sass-lang.com
|
|
if: *deploy-if
|
|
env:
|
|
# HEROKU_TOKEN="..."
|
|
- secure: "DAc49oGWMLOk+q06zqRgKxrD+do8WAd8QM9Tq5TN25Rwfs8w1Y8Mt+7fqRymVRjsakFiCtVgAYF5/6GjgsH1DUaqkEmIBU6cz6nS6hLmXSOpjBxjiv+b4AGAZwsVK4DE+kxRBWjpHrZYJVN1h7322EnAgJ5i2GM6iCqP0rmY7/ptjzXuqUwFtr1abtLSf2s9+LCH3u7H4IOnNSLFjPTWBXptlLPIvi1j1OEILcDJs/YI1oWxtuQtI1arAMdG26TuuQc66xVdWrwxCC+kf3G3X2uXL6WcKtGEgqTxqKj+ru40R18syOI0BpPpk0AH9dHcQWtL+YDKIfy+T/5trfDZe/U7/3I66lB/ckNmRC60zUm934Q5C96suL09Rq5WyyiYnmd1Fbwwv2vL70bsc6flO+pEr9ErwNfJFn2JtVVELFOm0S5tAbmic85deSRRHRwPMjdJ0w5j/TK04Mvd2n40kKUv4rYVeqmjB7QtQ1l5dMK+hOnqYvrz6YjEK7VB3R4j3/op1y8tbMDXzzrkbVSDPJI1Bp5HeH9L4pOdVLJVpBXXPlO7F2e6oLaUSGwbWV9uGc/EVlbxImkbY7WC4KZM4WKvQeoMApwYaKvRcRYsQ1XhGSiURnNeoaZl++MkqQVhCc33kb6Ik8oy81nP1vLhWBHoNyjNsJXoe4EvBxxe+zw="
|
|
install: skip
|
|
script: skip
|
|
deploy:
|
|
provider: script
|
|
# Heroku doesn't have a public API endpoint for this yet, so we use the
|
|
# private endpoint instead.
|
|
script: tool/travis/deploy/heroku.sh
|
|
on: {tags: true}
|
|
|
|
# Deploy to Bazel. This is in a separate deploy stage because it needs to
|
|
# install the npm package.
|
|
- stage: deploy 2
|
|
name: Bazel
|
|
if: *deploy-if
|
|
env: *github-env
|
|
script: skip
|
|
language: node_js
|
|
node_js: lts/*
|
|
deploy:
|
|
provider: script
|
|
script: pub run grinder update-bazel
|
|
skip_cleanup: true
|
|
on: {tags: true}
|
|
|
|
- name: "GitHub: Mac OS"
|
|
if: *deploy-if
|
|
env: *github-env
|
|
script: skip
|
|
os: osx
|
|
deploy:
|
|
provider: script
|
|
script: pub run grinder pkg-github-macos
|
|
skip_cleanup: true
|
|
on: {tags: true}
|
|
|
|
- name: "GitHub: Windows"
|
|
if: *deploy-if
|
|
env: *github-env
|
|
script: skip
|
|
os: windows
|
|
deploy:
|
|
provider: script
|
|
script: pub run grinder pkg-github-windows
|
|
skip_cleanup: true
|
|
on: {tags: true}
|