v1.81.0 #2759
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: build | |
on: | |
pull_request: | |
push: | |
branches: | |
- '**' | |
tags-ignore: | |
- 'v*' | |
workflow_dispatch: | |
jobs: | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup ruby | |
uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: ruby | |
bundler-cache: true | |
- name: Lint | |
run: bundle exec rake rubocop | |
spec: | |
runs-on: ${{ matrix.os }} | |
container: ${{ matrix.container.image != 'docker.io/nixos/nix:latest' && matrix.container || null }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- macos-latest | |
- ubuntu-latest | |
- windows-latest | |
container: | |
- | |
vm: | |
- | |
ruby-version: | |
- '3.1' | |
- '3.2' | |
- '3.3' | |
- jruby | |
- truffleruby | |
- truffleruby+graalvm | |
exclude: | |
- os: windows-latest | |
ruby-version: truffleruby | |
- os: windows-latest | |
ruby-version: truffleruby+graalvm | |
include: | |
- os: ubuntu-latest | |
container: | |
image: docker.io/library/ruby:3.1-alpine | |
- os: ubuntu-latest | |
container: | |
image: docker.io/library/ruby:3.2-alpine | |
- os: ubuntu-latest | |
container: | |
image: docker.io/library/ruby:3.3-alpine | |
- os: ubuntu-latest | |
container: | |
image: docker.io/nixos/nix:latest | |
- os: ubuntu-latest | |
vm: | |
os: freebsd | |
run: pkg install -y node npm protobuf ruby rubygem-bundler rubygem-rake | |
- os: ubuntu-latest | |
vm: | |
os: openbsd | |
run: | | |
pkg_add node protobuf ruby%3.3 ruby-shims | |
echo 3.3 | tee /etc/ruby-version | |
- os: ubuntu-latest | |
vm: | |
os: netbsd | |
run: /usr/sbin/pkg_add nodejs protobuf ruby | |
- os: ubuntu-latest | |
vm: | |
os: dragonflybsd | |
run: pkg install -y libnghttp2 libuv node npm protobuf ruby rubygem-bundler rubygem-rake | |
- os: ubuntu-latest | |
vm: | |
os: omnios | |
run: | | |
pkg install build-essential node-22 protobuf ruby-33 | |
pkg install "$(pkg search -HI -o pkg.name "$(ruby -e 'puts RbConfig::CONFIG["CC"]')")" | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Initialize vm | |
if: matrix.vm | |
uses: ./.github/actions/setup-vm | |
with: | |
os: ${{ matrix.vm.os }} | |
run: ${{ matrix.vm.run }} | |
- name: Initialize nix | |
if: matrix.container.image == 'docker.io/nixos/nix:latest' | |
uses: ./.github/actions/setup-nix | |
with: | |
image: ${{ matrix.container.image }} | |
packages: ruby | |
- name: Install dependencies | |
if: endsWith(matrix.container.image, ':alpine') || endsWith(matrix.container.image, '-alpine') | |
run: apk add build-base | |
- name: Setup ruby | |
if: matrix.ruby-version | |
uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: ${{ matrix.ruby-version }} | |
bundler-cache: true | |
- name: Bundle | |
if: "!matrix.ruby-version" | |
run: bundle install | |
- name: Compile | |
run: bundle exec rake compile | |
- name: Spec | |
if: "!matrix.vm" # TODO: remove after https://github.com/sass/dart-sass/pull/2413 | |
run: bundle exec rake spec | |
- name: Install | |
run: rake -f -r bundler/gem_tasks install | |
release: | |
if: github.event.repository.fork == false && github.ref == format('refs/heads/{0}', github.event.repository.default_branch) | |
needs: [lint, spec] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
ssh-key: ${{ secrets.DEPLOY_KEY }} | |
- name: Setup ruby | |
uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: ruby | |
- name: Release | |
run: | | |
git config user.email 41898282+github-actions[bot]@users.noreply.github.com | |
git config user.name github-actions[bot] | |
rake -f -r bundler/gem_tasks release gem_push=no |