Skip to content

[DNM] LibSass 4.0 Alpha Big Bang #191

[DNM] LibSass 4.0 Alpha Big Bang

[DNM] LibSass 4.0 Alpha Big Bang #191

Workflow file for this run

name: GitHub CI
on:
push:
branches:
- master
- develop
pull_request:
branches:
- master
- develop
jobs:
linux-and-mac:
name: Linux and MacOS build
# if: ${{ false }}
runs-on: ${{ matrix.config.os }}
strategy:
# fail-fast: false
matrix:
config:
#- {os: ubuntu-16.04, build: 'static', cc: 'gcc-4.4', cxx: 'g++-4.4', autotools: 'no', cppstd: 'gnu++0x'}
#- {os: ubuntu-16.04, build: 'static', cc: 'gcc-4.6', cxx: 'g++-4.6', autotools: 'no', cppstd: 'gnu++0x'}
#- {os: ubuntu-16.04, build: 'static', cc: 'gcc-4.7', cxx: 'g++-4.7', autotools: 'no', cppstd: 'gnu++11'}
#- {os: ubuntu-16.04, build: 'static', cc: 'gcc-4.8', cxx: 'g++-4.8', autotools: 'no', cppstd: 'c++11'}
- {os: ubuntu-16.04, build: 'static', cc: 'gcc-5', cxx: 'g++-5', autotools: 'no', cppstd: 'c++11'}
- {os: ubuntu-16.04, build: 'static', cc: 'gcc-6', cxx: 'g++-6', autotools: 'no', cppstd: 'c++11'}
- {os: ubuntu-latest, build: 'static', cc: 'gcc-7', cxx: 'g++-7', autotools: 'no', cppstd: 'c++11'}
- {os: ubuntu-latest, build: 'shared', cc: 'gcc', cxx: 'g++', autotools: 'yes', cppstd: 'c++11', cflags: '-g -fsanitize=address'}
- {os: ubuntu-latest, build: 'static', cc: 'gcc', cxx: 'g++', autotools: 'yes', cppstd: 'c++11', cflags: '-g -fsanitize=address'}
- {os: ubuntu-latest, build: 'shared', cc: 'gcc', cxx: 'g++', autotools: 'no', cppstd: 'c++11'}
- {os: ubuntu-latest, build: 'static', cc: 'gcc', cxx: 'g++', autotools: 'no', cppstd: 'c++11'}
- {os: ubuntu-latest, build: 'shared', cc: 'clang', cxx: 'clang++', autotools: 'yes', cppstd: 'c++11', cflags: '-g -fsanitize=address'}
- {os: ubuntu-latest, build: 'static', cc: 'clang', cxx: 'clang++', autotools: 'yes', cppstd: 'c++11', cflags: '-g -fsanitize=address'}
- {os: ubuntu-latest, build: 'shared', cc: 'clang', cxx: 'clang++', autotools: 'no', cppstd: 'c++11', cflags: '-g -fsanitize=address'}
- {os: ubuntu-latest, build: 'static', cc: 'clang', cxx: 'clang++', autotools: 'no', cppstd: 'c++11', cflags: '-g -fsanitize=address'}
- {os: macOS-latest, build: 'shared', cc: 'clang', cxx: 'clang++', autotools: 'yes', cppstd: 'c++11', cflags: '-g -fsanitize=address'}
- {os: macOS-latest, build: 'static', cc: 'clang', cxx: 'clang++', autotools: 'yes', cppstd: 'c++11', cflags: '-g -fsanitize=address'}
- {os: macOS-latest, build: 'shared', cc: 'clang', cxx: 'clang++', autotools: 'no', cppstd: 'c++11', cflags: '-g -fsanitize=address'}
- {os: macOS-latest, build: 'static', cc: 'clang', cxx: 'clang++', autotools: 'no', cppstd: 'c++11', cflags: '-g -fsanitize=address'}
env:
ASAN_OPTIONS: ${{ matrix.config.asan }}
AUTOTOOLS: ${{ matrix.config.autotools }}
EXTRA_CFLAGS: ${{ matrix.config.cflags }}
EXTRA_CXXFLAGS: ${{ matrix.config.cflags }}
EXTRA_LDFLAGS: ${{ matrix.config.cflags }}
SASS_LIBSASS_PATH: libsass
COVERAGE: no
BUILD: ${{ matrix.config.build }}
CXX: ${{ matrix.config.cxx }}
CC: ${{ matrix.config.cc }}
steps:
- uses: actions/checkout@v2
- uses: ruby/setup-ruby@v1
if: matrix.config.os == 'ubuntu-16.04'
with:
ruby-version: 2.6
- name: Install ruby hrx module
if: matrix.config.os == 'ubuntu-16.04'
run: sudo /opt/hostedtoolcache/Ruby/2.6.7/x64/bin/gem install hrx
- name: Install ruby minitest module
if: matrix.config.os == 'ubuntu-16.04'
run: sudo /opt/hostedtoolcache/Ruby/2.6.7/x64/bin/gem install minitest
- name: Install automake if needed (MacOS)
if: runner.os == 'macOS'
run: brew install automake
- name: Install gcc 7 if needed
if: matrix.config.cc == 'gcc-7'
run: |
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
sudo apt install g++-7 -y
- name: Install gcc 6 if needed
if: matrix.config.cc == 'gcc-6'
run: |
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
sudo apt install g++-6 -y
- name: Install gcc 5 if needed
if: matrix.config.cc == 'gcc-5'
run: |
sudo add-apt-repository universe
sudo add-apt-repository multiverse
sudo apt update
sudo apt install g++-5 -y
- name: Install gcc 4.8 if needed
if: matrix.config.cc == 'gcc-4.8'
run: |
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
sudo apt install g++-4.8 -y
- name: Install gcc 4.7 if needed
if: matrix.config.cc == 'gcc-4.7'
run: |
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
sudo apt install g++-4.7 -y
- name: Install gcc 4.6 if needed
if: matrix.config.cc == 'gcc-4.6'
run: |
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
sudo apt install g++-4.6 -y
- name: Install gcc 4.5 if needed
if: matrix.config.cc == 'gcc-4.5'
run: |
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
sudo apt install g++-4.5 -y
- name: Install gcc 4.4 if needed
if: matrix.config.cc == 'gcc-4.4'
run: |
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
sudo apt install g++-4.4 -y
- name: ./script/ci-install-deps
env:
MAKE_OPTS: LIBSASS_CPPSTD=${{ matrix.config.cppstd }}
run: ./script/ci-install-deps
- name: ./script/ci-install-compiler
env:
MAKE_OPTS: LIBSASS_CPPSTD=${{ matrix.config.cppstd }}
run: ./script/ci-install-compiler
- name: ./script/ci-build-libsass
env:
MAKE_OPTS: LIBSASS_CPPSTD=${{ matrix.config.cppstd }}
run: ./script/ci-build-libsass
- name: Call LibSass make install
run: sudo EXTRA_CFLAGS="$EXTRA_CFLAGS" EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS" EXTRA_LDFLAGS="$EXTRA_LDFLAGS" make install
- name: Call SassC make install
run: sudo EXTRA_CFLAGS="$EXTRA_CFLAGS" EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS" EXTRA_LDFLAGS="$EXTRA_LDFLAGS" make -C sassc install
- name: Check sassc help call
run: sassc --term-colors --help
windows-msvc:
runs-on: ${{ matrix.config.os }}
name: Windows MSVC build
# if: ${{ false }}
strategy:
# fail-fast: false
matrix:
config:
- {os: 'windows-latest', build: Release, platform: Win64, version: 'latest'}
- {os: 'windows-latest', build: Debug, platform: Win64, version: 'latest'}
- {os: 'windows-latest', build: Release, platform: Win32, version: 'latest'}
- {os: 'windows-latest', build: Debug, platform: Win32, version: 'latest'}
- {os: 'windows-2016', build: Release, platform: Win64, version: '[15.0,16.0]'}
- {os: 'windows-2016', build: Debug, platform: Win64, version: '[15.0,16.0]'}
- {os: 'windows-2016', build: Release, platform: Win32, version: '[15.0,16.0]'}
- {os: 'windows-2016', build: Debug, platform: Win32, version: '[15.0,16.0]'}
steps:
- name: Change git config to preserve line-endings
run: |
git config --system core.autocrlf false
git config --system core.eol lf
- uses: actions/checkout@v2
- uses: ruby/setup-ruby@v1
with:
ruby-version: 2.6
bundler-cache: true
- name: Install ruby hrx module
run: gem install hrx
- name: Install ruby minitest module
run: gem install minitest
- name: Add msbuild to PATH
uses: microsoft/[email protected]
with:
vs-version: ${{ matrix.config.version }}
- name: Clone and checkout sassc repository
run: git clone https://github.com/mgreter/sassc.git --branch refactor/libsass-4-alpha
- name: Clone and checkout sass-spec repository
run: git clone https://github.com/mgreter/sass-spec.git --branch refactor/libsass-4-alpha
- name: Compile libsass ${{ matrix.config.build }} build for ${{ matrix.config.platform }}
run: msbuild /m:4 /p:Configuration=${{ matrix.config.build }} /p:Platform=${{ matrix.config.platform }} sassc\win\sassc.sln
- name: Check sassc help call
run: sassc\bin\sassc.exe --term-colors --help
- name: Execute spec test runner
if: matrix.config.build != 'Debug'
run: ruby sass-spec/sass-spec.rb --probe-todo --impl libsass -c sassc/bin/sassc.exe -s sass-spec/spec
windows-mingw:
runs-on: windows-latest
name: Windows MinGW build
strategy:
# fail-fast: false
matrix:
config:
- {build: shared, platform: x64}
- {build: static, platform: x64}
- {build: shared, platform: x86}
- {build: static, platform: x86}
env:
ASAN_OPTIONS: ${{ matrix.config.asan }}
EXTRA_CFLAGS: ${{ matrix.config.cflags }}
EXTRA_CXXFLAGS: ${{ matrix.config.cflags }}
#SASS_LIBSASS_PATH: libsass
#COVERAGE: no
steps:
- name: Change git config to preserve line-endings
run: |
git config --system core.autocrlf false
git config --system core.eol lf
- uses: actions/checkout@v2
- uses: ruby/setup-ruby@v1
with:
ruby-version: 2.6
bundler-cache: true
- name: Set up MinGW
uses: egor-tensin/setup-mingw@v2
with:
platform: ${{ matrix.config.platform }}
- name: Install ruby hrx module
run: gem install hrx
- name: Install ruby minitest module
run: gem install minitest
- name: Clone and checkout sassc repository
run: git clone https://github.com/mgreter/sassc.git --branch refactor/libsass-4-alpha
- name: Clone and checkout sass-spec repository
run: git clone https://github.com/mgreter/sass-spec.git --branch refactor/libsass-4-alpha
- name: Compile libsass ${{ matrix.config.build }} build for ${{ matrix.config.platform }}
run: make -j5 ${{ matrix.config.build }} BUILD=${{ matrix.config.build }} CC=gcc
- name: Listening results
run: dir lib
- name: Copy library over to pass call test
if: matrix.config.build == 'shared'
run: copy lib\libsass.dll sassc\bin
- name: Compile sassc ${{ matrix.config.build }} build for ${{ matrix.config.platform }}
run: make -j5 sassc BUILD=${{ matrix.config.build }} CC=gcc
- name: Check sassc help call
run: sassc\bin\sassc.exe --term-colors --help
- name: Execute spec test runner
run: ruby sass-spec/sass-spec.rb --probe-todo --impl libsass -c sassc/bin/sassc.exe -s sass-spec/spec
#- name: Install LLVM and Clang
# uses: KyleMayes/[email protected]