Skip to content

Merge main into feature.color-4 #1106

Merge main into feature.color-4

Merge main into feature.color-4 #1106

Workflow file for this run

name: CI
defaults:
run: {shell: bash}
env:
# TODO(jathak): Update this to Node 18 once unit tests are fixed.
NODE_VERSION: 14
on:
push: {branches: [main, feature.*]}
pull_request:
jobs:
unit_tests:
name: "Unit tests"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with: {node-version: "${{ env.NODE_VERSION }}"}
- uses: dart-lang/setup-dart@v1
with: {sdk: stable}
- run: npm install
- run: npm test
static_analysis:
name: "Static analysis"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with: {node-version: "${{ env.NODE_VERSION }}"}
- run: npm install
- run: npm run lint
lint_spec:
name: "Lint spec files"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with: {node-version: "${{ env.NODE_VERSION }}"}
- run: npm install
- run: npm run lint-spec
dart_sass_language:
name: "Language | Dart Sass | Dart ${{ matrix.dart_channel }}"
runs-on: ubuntu-latest
if: "github.event_name != 'pull_request' || !contains(github.event.pull_request.body, 'skip dart-sass')"
strategy:
matrix:
dart_channel: [stable, dev]
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with: {node-version: "${{ env.NODE_VERSION }}"}
- run: npm install
- uses: dart-lang/setup-dart@v1
with: {sdk: "${{ matrix.dart_channel }}"}
- uses: bufbuild/[email protected]
with: {github_token: "${{ github.token }}"}
- name: Dart Sass | Checkout
uses: sass/clone-linked-repo@v1
with: {repo: sass/dart-sass, path: dart-sass}
- name: Dart Sass | Install
run: |
dart pub get
dart run grinder protobuf
working-directory: dart-sass
- name: Run specs
run: npm run sass-spec -- --dart dart-sass
libsass:
name: "Language | LibSass"
runs-on: ubuntu-latest
if: "github.event_name != 'pull_request' || !contains(github.event.pull_request.body, 'skip libsass')"
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with: {node-version: "${{ env.NODE_VERSION }}"}
- run: npm install
- name: Install SassC
run: |
export SASS_LIBSASS_PATH=$BUILD_DIR/../libsass
export SASS_SASSC_PATH=$BUILD_DIR/../sassc
git clone https://github.com/sass/libsass.git $SASS_LIBSASS_PATH
(cd $SASS_LIBSASS_PATH; git checkout $GITISH)
git clone https://github.com/sass/sassc.git $SASS_SASSC_PATH
(cd $SASS_SASSC_PATH; git checkout $GITISH)
make -C $SASS_SASSC_PATH
env:
BUILD_DIR: "${{ github.workspace }}"
- name: Run specs
run: npm run sass-spec -- --impl libsass -c ../sassc/bin/sassc
# The versions should be kept up-to-date with the latest LTS Node releases.
# They next need to be rotated October 2021. See
# https://github.com/nodejs/Release.
js_api_dart_sass:
name: "JS API | Pure JS | Node ${{ matrix.node_version }} | ${{ matrix.os }}"
runs-on: "${{ matrix.os }}"
if: "github.event_name != 'pull_request' || !contains(github.event.pull_request.body, 'skip dart-sass')"
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
node_version: [18]
# Only test LTS versions on Ubuntu
include:
- os: ubuntu-latest
node_version: 14
- os: ubuntu-latest
node_version: 16
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with: {node-version: "${{ matrix.node_version }}"}
- run: npm install
- uses: dart-lang/setup-dart@v1
with: {sdk: stable}
- uses: bufbuild/[email protected]
with: {github_token: "${{ github.token }}"}
- name: Dart Sass | Checkout
uses: sass/clone-linked-repo@v1
with: {repo: sass/dart-sass, path: dart-sass}
- name: Dart Sass | Install
run: |
dart pub get
dart pub run grinder protobuf pkg-npm-dev
cd build/npm
npm install
working-directory: dart-sass
- name: Check out Sass specification
uses: sass/clone-linked-repo@v1
with:
repo: sass/sass
path: language
- name: Run specs
run: npm run js-api-spec -- --sassPackage dart-sass/build/npm --sassSassRepo language
js_api_dart_sass_browser:
name: "JS API | Pure JS | Browser"
runs-on: ubuntu-latest
if: "github.event_name != 'pull_request' || !contains(github.event.pull_request.body, 'skip dart-sass')"
steps:
- uses: actions/checkout@v3
- uses: browser-actions/setup-chrome@v1
- run: npm install
- uses: dart-lang/setup-dart@v1
with: {sdk: stable}
- uses: bufbuild/[email protected]
with: {github_token: "${{ github.token }}"}
- name: Install Dart Sass
run: |
git clone https://github.com/sass/dart-sass.git ../dart-sass --depth 1
(
cd ../dart-sass
dart pub get
dart pub run grinder protobuf pkg-npm-dev
cd build/npm
npm install
)
- name: Check out Sass specification
uses: sass/clone-linked-repo@v1
with:
repo: sass/sass
path: language
- name: Run specs
run: npm run js-api-spec -- --sassPackage ../dart-sass/build/npm --sassSassRepo language --browser
env:
CHROME_EXECUTABLE: chrome
# The versions should be kept up-to-date with the latest LTS Node releases.
# They next need to be rotated October 2021. See
# https://github.com/nodejs/Release.
js_api_sass_embedded:
name: "JS API | Embedded | Node ${{ matrix.node_version }} | ${{ matrix.os }}"
runs-on: "${{ matrix.os }}"
if: github.event_name != 'pull_request' || !contains(github.event.pull_request.body, 'skip sass-embedded')
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
node_version: [18]
# Only test LTS versions on Ubuntu
include:
- os: ubuntu-latest
node_version: 14
- os: ubuntu-latest
node_version: 16
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with: {node-version: "${{ matrix.node_version }}"}
- run: npm install
- uses: dart-lang/setup-dart@v1
with: {sdk: stable}
# Clone linked versions of Dart Sass Embedded and the Embedded Protocol so
# that they match the current feature branch.
- name: Dart Sass Embedded | Checkout
uses: sass/clone-linked-repo@v1
with: {repo: sass/dart-sass-embedded, path: dart-sass-embedded}
- name: Embedded Protocol | Checkout
uses: sass/clone-linked-repo@v1
with: {repo: sass/embedded-protocol, path: embedded-protocol}
- name: Node.js Embedded Host | Checkout
uses: sass/clone-linked-repo@v1
with: {repo: sass/embedded-host-node, path: embedded-host-node}
- name: Node.js Embedded Host | Install
run: |
npm install
npm run init -- \
--compiler-path=../dart-sass-embedded \
--protocol-path=../embedded-protocol
npm run compile
working-directory: embedded-host-node
- name: Check out Sass specification
uses: sass/clone-linked-repo@v1
with:
repo: sass/sass
path: language
- name: Run specs
run: npm run js-api-spec -- --sassPackage embedded-host-node --sassSassRepo language