Skip to content

add tests for first class mixins #1128

add tests for first class mixins

add tests for first class mixins #1128

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/buf-setup-action@v1.13.1
with: {github_token: "${{ github.token }}"}
- name: Install dart-sass
run: |
GITHUB_REF=${PR_REF:-$CURRENT_REF}
if [[ "$GITHUB_REF" == refs/heads/feature.* ]]; then branch="${GITHUB_REF:11}"; else branch=main; fi
git clone https://github.com/sass/dart-sass.git ../dart-sass --depth 1 --branch "$branch"
(
cd ../dart-sass
dart pub get
dart run grinder protobuf
)
env:
PR_REF: "${{ github.base_ref }}"
CURRENT_REF: "${{ github.ref }}"
- 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/buf-setup-action@v1.13.1
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
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/buf-setup-action@v1.13.1
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}
- name: Install sass-embedded
run: |
git clone https://github.com/sass/embedded-host-node.git \
../embedded-host-node --depth 1
(
cd ../embedded-host-node
npm install
npm run init
npm run compile
)
- 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