Skip to content

Commit

Permalink
Add Sass test run matrix config
Browse files Browse the repository at this point in the history
  • Loading branch information
colinrotherham committed Sep 22, 2022
1 parent 57f07fa commit d03adc2
Showing 1 changed file with 90 additions and 82 deletions.
172 changes: 90 additions & 82 deletions .github/workflows/sass.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,92 +7,100 @@ concurrency:
cancel-in-progress: true

jobs:
dart-sass:
name: Dart Sass v1.0.0
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
cache: npm
node-version: 8 # v8 required for sass v1.0.0
- run: |
npm install -g sass@v1.0.0
sass --version
- run: time sass src/govuk/all.scss > /dev/null

dart-sass-latest:
name: Dart Sass v1 (latest)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
cache: npm
node-version: 14
- run: |
npm install -g sass@v1
sass --version
# Treat GOV.UK Frontend as a dependency by importing it via load paths,
# allowing us to mimic the way we recommend our users silence deprecation
# warnings using the `quiet-deps` flag.
#
# Run the command through a shell to ensure `time` measures the time
# taken by the entire pipeline, as we are now piping input into `sass`.
- run: time sh -c 'echo "@import "\""govuk/all"\"";" | sass --stdin --quiet-deps --load-path=src > /dev/null'


# Node Sass v3.4.0 = LibSass v3.3.0
lib-sass:
name: LibSass v3.3.0 (deprecated)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 4 # v4 required for node-sass v3.4.0
- run: |
npm install -g node-sass@v3.4.0
node-sass --version
- run: time node-sass src/govuk/all.scss > /dev/null

# Node Sass v7.x = LibSass v3 latest
lib-sass-latest:
name: LibSass v3 (latest, deprecated)
node:
name: ${{ matrix.name }}
runs-on: ubuntu-latest

strategy:
fail-fast: false

matrix:
include:
- name: Dart Sass v1.0.0
node-version: 8 # v8 required for sass v1.0.0

run: |
npm install -g sass@1.0.0
sass --version
time sass src/govuk/all.scss > /dev/null
- name: Dart Sass v1.x.x (latest)
node-version-file: .nvmrc

# Treat GOV.UK Frontend as a dependency by importing it via load paths,
# allowing us to mimic the way we recommend our users silence deprecation
# warnings using the `quiet-deps` flag.
#
# Run the command through a shell to ensure `time` measures the time
# taken by the entire pipeline, as we are now piping input into `sass`.
run: |
npm install -g sass@1
sass --version
time sh -c 'echo "@import "\""govuk/all"\"";" | sass --stdin --quiet-deps --load-path=src > /dev/null'
- name: LibSass v3.3.0 (deprecated) # Node Sass v3.4.0 = LibSass v3.3.0
node-version: 4 # v4 required for node-sass v3.4.0

run: |
npm install -g node-sass@3.4.0
node-sass --version
time node-sass src/govuk/all.scss > /dev/null
- name: LibSass v3.x.x (latest, deprecated) # Node Sass v7.x = LibSass v3 latest
node-version-file: .nvmrc

run: |
npm install -g node-sass@v7
node-sass --version
time node-sass src/govuk/all.scss > /dev/null
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
- name: Checkout code
uses: actions/checkout@v3

- name: Setup Node.js
uses: actions/setup-node@v3
with:
cache: npm
node-version: 14
- run: |
npm install -g node-sass@v7
node-sass --version
- run: time node-sass src/govuk/all.scss > /dev/null

ruby-sass:
name: Ruby Sass v3.4.0 (deprecated)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: ruby/setup-ruby@v1
with:
ruby-version: 2.1.9 # Oldest version available on ruby/setup-ruby
- run: |
gem install sass -v 3.4.0
sass --version
- run: time sass src/govuk/all.scss > /dev/null

ruby-sass-latest:
name: Ruby Sass v3 (latest, deprecated)
node-version: ${{ matrix.node-version }}

- name: Run task
run: ${{ matrix.run }}

ruby:
name: ${{ matrix.name }}
runs-on: ubuntu-latest

strategy:
fail-fast: false

matrix:
include:
- name: Ruby Sass v3.4.0 (deprecated)
ruby-version: 2.1.9 # Oldest version available on ruby/setup-ruby

run: |
gem install sass -v 3.4.0
sass --version
time sass src/govuk/all.scss > /dev/null
- name: Ruby Sass v3.x.x (latest, deprecated)
ruby-version: 2.6 # Latest Ruby when Ruby Sass was EOL'ed (April 2019)

run: |
gem install sass -v '~> 3.0'
sass --version
time sass src/govuk/all.scss > /dev/null
steps:
- uses: actions/checkout@v3
- uses: ruby/setup-ruby@v1
- name: Checkout code
uses: actions/checkout@v3

- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 2.6 # Latest Ruby when Ruby Sass was EOL'ed (April 2019)
- run: |
gem install sass -v '~> 3.0'
sass --version
- run: time sass src/govuk/all.scss > /dev/null
bundler-cache: true
ruby-version: ${{ matrix.ruby-version }}

- name: Run task
run: ${{ matrix.run }}

0 comments on commit d03adc2

Please sign in to comment.