This repository has been archived by the owner on May 15, 2023. It is now read-only.
Bump pub_semver from 2.1.3 to 2.1.4 #426
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
defaults: | |
run: {shell: bash} | |
on: | |
push: | |
branches: [main, feature.*] | |
tags: ['**'] | |
pull_request: | |
jobs: | |
dart_tests: | |
name: "Dart tests | Dart ${{ matrix.dart_channel }} | ${{ matrix.os }}" | |
runs-on: "${{ matrix.os }}" | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, windows-latest, macos-latest] | |
dart_channel: [stable] | |
include: [{os: ubuntu-latest, dart_channel: dev}] | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: frenck/action-setup-yq@v1 | |
with: {version: v4.30.5} # frenck/action-setup-yq#35 | |
- uses: bufbuild/buf-setup-action@v1.13.1 | |
with: {github_token: "${{ github.token }}"} | |
- uses: dart-lang/setup-dart@v1 | |
with: {sdk: "${{ matrix.dart_channel }}"} | |
- name: Check out Dart Sass only if linked in the PR description | |
uses: sass/clone-linked-repo@v1 | |
with: | |
repo: sass/dart-sass | |
path: build/dart-sass | |
default-ref: null | |
- name: Link the embedded compiler to Dart Sass | |
run: | | |
if [[ -d build/dart-sass ]]; then | |
yq -i ' | |
.dependency_overrides.sass = {"path": "build/dart-sass"} | | |
.dependency_overrides.sass_api = {"path": "build/dart-sass/pkg/sass_api"} | |
' pubspec.yaml | |
fi | |
shell: bash | |
- name: Check out embedded Sass protocol | |
uses: sass/clone-linked-repo@v1 | |
with: {repo: sass/embedded-protocol, path: build/embedded-protocol} | |
- run: dart pub get | |
- run: dart run grinder protobuf | |
env: {UPDATE_SASS_PROTOCOL: false} | |
- run: dart run grinder pkg-standalone-dev | |
- name: Run tests | |
run: dart run test -r expanded | |
# 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. | |
sass_spec: | |
name: 'JS API Tests | Node ${{ matrix.node_version }} | ${{ matrix.os }}' | |
runs-on: ${{ matrix.os }}-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu, windows, macos] | |
node_version: [18] | |
include: | |
# Include LTS versions on Ubuntu | |
- os: ubuntu | |
node_version: 16 | |
- os: ubuntu | |
node_version: 14 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: dart-lang/setup-dart@v1 | |
with: {sdk: stable} | |
- uses: frenck/action-setup-yq@v1 | |
with: {version: v4.30.5} # frenck/action-setup-yq#35 | |
- uses: bufbuild/buf-setup-action@v1.13.1 | |
with: {github_token: "${{ github.token }}"} | |
- name: Check out Dart Sass only if linked in the PR description | |
uses: sass/clone-linked-repo@v1 | |
with: | |
repo: sass/dart-sass | |
path: build/dart-sass | |
# Unless we're cutting a release, run the main branch of Dart Sass | |
# against the main branch of sass-spec so that we don't need to make | |
# an empty commit to this repo every time we update those two. | |
default-ref: ${{ !startsWith(github.ref, 'refs/tags/') && 'main' || null }} | |
- name: Link the embedded compiler to Dart Sass | |
run: | | |
if [[ -d build/dart-sass ]]; then | |
yq -i ' | |
.dependency_overrides.sass = {"path": "build/dart-sass"} | | |
.dependency_overrides.sass_api = {"path": "build/dart-sass/pkg/sass_api"} | |
' pubspec.yaml | |
fi | |
shell: bash | |
- name: Check out embedded Sass protocol | |
uses: sass/clone-linked-repo@v1 | |
with: {repo: sass/embedded-protocol, path: build/embedded-protocol} | |
- name: Check out the embedded host | |
uses: sass/clone-linked-repo@v1 | |
with: {repo: sass/embedded-host-node} | |
- name: Check out the JS API definition | |
uses: sass/clone-linked-repo@v1 | |
with: {repo: sass/sass, path: language} | |
- name: Initialize embedded host | |
run: | | |
npm install | |
npm run init -- --protocol-path=../build/embedded-protocol \ | |
--compiler-path=.. --api-path=../language | |
npm run compile | |
mv {`pwd`/,dist/}lib/src/vendor/dart-sass-embedded | |
working-directory: embedded-host-node | |
- name: Check out sass-spec | |
uses: sass/clone-linked-repo@v1 | |
with: {repo: sass/sass-spec} | |
- name: Install sass-spec dependencies | |
run: npm install | |
working-directory: sass-spec | |
- name: Version info | |
run: | | |
path=embedded-host-node/dist/lib/src/vendor/dart-sass-embedded/dart-sass-embedded | |
if [[ -f "$path.cmd" ]]; then "./$path.cmd" --version | |
elif [[ -f "$path.bat" ]]; then "./$path.bat" --version | |
elif [[ -f "$path.exe" ]]; then "./$path.exe" --version | |
else "./$path" --version | |
fi | |
- name: Run tests | |
run: npm run js-api-spec -- --sassPackage ../embedded-host-node --sassSassRepo ../language | |
working-directory: sass-spec | |
static_analysis: | |
name: Static analysis | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: frenck/action-setup-yq@v1 | |
with: {version: v4.30.5} # frenck/action-setup-yq#35 | |
- uses: bufbuild/buf-setup-action@v1.13.1 | |
with: {github_token: "${{ github.token }}"} | |
- uses: dart-lang/setup-dart@v1 | |
- name: Check out Dart Sass only if linked in the PR description | |
uses: sass/clone-linked-repo@v1 | |
with: | |
repo: sass/dart-sass | |
path: build/dart-sass | |
default-ref: null | |
- name: Link the embedded compiler to Dart Sass | |
run: | | |
if [[ -d build/dart-sass ]]; then | |
yq -i ' | |
.dependency_overrides.sass = {"path": "build/dart-sass"} | | |
.dependency_overrides.sass_api = {"path": "build/dart-sass/pkg/sass_api"} | |
' pubspec.yaml | |
fi | |
shell: bash | |
- name: Check out embedded Sass protocol | |
uses: sass/clone-linked-repo@v1 | |
with: {repo: sass/embedded-protocol, path: build/embedded-protocol} | |
- run: dart pub get | |
- run: dart run grinder protobuf | |
env: {UPDATE_SASS_PROTOCOL: false} | |
- name: Analyze dart | |
run: dart analyze --fatal-warnings ./ | |
format: | |
name: Code formatting | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: dart-lang/setup-dart@v1 | |
- run: dart format --fix . | |
- run: git diff --exit-code | |
deploy_github_linux: | |
name: "Deploy Github: linux-ia32, linux-x64" | |
runs-on: ubuntu-latest | |
needs: [dart_tests, sass_spec, static_analysis, format] | |
if: "startsWith(github.ref, 'refs/tags/') && github.repository == 'sass/dart-sass-embedded'" | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: bufbuild/buf-setup-action@v1.13.1 | |
with: {github_token: "${{ github.token }}"} | |
- uses: dart-lang/setup-dart@v1 | |
- run: dart pub get | |
- run: dart run grinder protobuf | |
- name: Deploy | |
run: dart run grinder pkg-github-release pkg-github-linux-ia32 pkg-github-linux-x64 | |
env: {GH_BEARER_TOKEN: "${{ github.token }}"} | |
deploy_github_linux_qemu: | |
name: "Deploy Github: linux-${{ matrix.arch }}" | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
include: | |
- arch: arm | |
platform: linux/arm/v7 | |
- arch: arm64 | |
platform: linux/arm64 | |
needs: [deploy_github_linux] | |
if: "startsWith(github.ref, 'refs/tags/') && github.repository == 'sass/dart-sass-embedded'" | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: bufbuild/buf-setup-action@v1.13.1 | |
with: {github_token: "${{ github.token }}"} | |
- uses: dart-lang/setup-dart@v1 | |
- run: dart pub get | |
- run: dart run grinder protobuf | |
- uses: docker/setup-qemu-action@v2 | |
- name: Deploy | |
run: | | |
docker run --rm \ | |
--env "GH_BEARER_TOKEN=$GH_BEARER_TOKEN" \ | |
--platform ${{ matrix.platform }} \ | |
--volume "$PWD:$PWD" \ | |
--workdir "$PWD" \ | |
docker.io/library/dart:latest \ | |
/bin/sh -c "dart pub get && dart run grinder pkg-github-linux-${{ matrix.arch }}" | |
env: {GH_BEARER_TOKEN: "${{ github.token }}"} | |
deploy_github: | |
name: "Deploy Github: ${{ matrix.platform }}" | |
runs-on: ${{ matrix.runner }} | |
needs: [deploy_github_linux] | |
if: "startsWith(github.ref, 'refs/tags/') && github.repository == 'sass/dart-sass-embedded'" | |
strategy: | |
matrix: | |
include: | |
- runner: macos-latest | |
platform: macos-x64 | |
architecture: x64 | |
- runner: self-hosted | |
platform: macos-arm64 | |
architecture: arm64 | |
- runner: windows-latest | |
platform: windows | |
architecture: x64 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: bufbuild/buf-setup-action@v1.13.1 | |
with: {github_token: "${{ github.token }}"} | |
- uses: dart-lang/setup-dart@v1 | |
# Workaround for dart-lang/setup-dart#59 | |
with: | |
architecture: ${{ matrix.architecture }} | |
- run: dart pub get | |
- run: dart run grinder protobuf | |
- name: Deploy | |
run: dart run grinder pkg-github-${{ matrix.platform }} | |
env: {GH_BEARER_TOKEN: "${{ github.token }}"} | |
deploy_homebrew: | |
name: "Deploy Homebrew" | |
runs-on: ubuntu-latest | |
needs: [dart_tests, sass_spec, static_analysis, format] | |
if: "startsWith(github.ref, 'refs/tags/') && github.repository == 'sass/dart-sass-embedded'" | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: dart-lang/setup-dart@v1 | |
- run: dart pub get | |
- name: Deploy | |
run: dart run grinder pkg-homebrew-update | |
env: | |
GH_TOKEN: "${{ secrets.GH_TOKEN }}" | |
GH_USER: sassbot | |
release_embedded_host: | |
name: "Release Embedded Host" | |
runs-on: ubuntu-latest | |
needs: [deploy_github_linux, deploy_github_linux_qemu, deploy_github] | |
if: "startsWith(github.ref, 'refs/tags/') && github.repository == 'sass/dart-sass-embedded'" | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
repository: sass/embedded-host-node | |
token: ${{ secrets.GH_TOKEN }} | |
- name: Get version | |
id: version | |
run: echo "::set-output name=version::${GITHUB_REF##*/}" | |
- name: Update version | |
run: | | |
# Update binary package versions | |
for dir in $(ls npm); do | |
cat "npm/$dir/package.json" | | |
jq --arg version ${{ steps.version.outputs.version }} ' | |
.version |= $version | |
' > package.json.tmp && | |
mv package.json.tmp "npm/$dir/package.json" | |
done | |
# Update main package version and dependencies on binary packages | |
cat package.json | | |
jq --arg version ${{ steps.version.outputs.version }} ' | |
.version |= $version | | |
."compiler-version" |= $version | | |
.optionalDependencies = (.optionalDependencies | .[] |= $version) | |
' > package.json.tmp && | |
mv package.json.tmp package.json | |
curl https://raw.githubusercontent.com/sass/dart-sass/${{ steps.version.outputs.version }}/CHANGELOG.md > CHANGELOG.md | |
shell: bash | |
- uses: EndBug/add-and-commit@v8 | |
with: | |
author_name: Sass Bot | |
author_email: sass.bot.beep.boop@gmail.com | |
message: Update compiler version and release | |
tag: ${{ steps.version.outputs.version }} |