71 lines
1.9 KiB
YAML
71 lines
1.9 KiB
YAML
name: Continuous Integration
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
- "*-stable"
|
|
pull_request:
|
|
branches:
|
|
- master
|
|
- "*-stable"
|
|
|
|
jobs:
|
|
ci:
|
|
name: "Run Tests (${{ matrix.label }})"
|
|
runs-on: "ubuntu-latest"
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- label: Ruby 2.5
|
|
ruby_version: "2.5"
|
|
- label: Ruby 2.7
|
|
ruby_version: "2.7"
|
|
- label: Ruby 3.0
|
|
ruby_version: "3.0"
|
|
- label: Ruby 3.1
|
|
ruby_version: "3.1"
|
|
- label: JRuby 9.2.20.1
|
|
ruby_version: "jruby-9.2.20.1"
|
|
steps:
|
|
- name: Checkout Repository
|
|
uses: actions/checkout@v2
|
|
- name: "Set up ${{ matrix.label }}"
|
|
uses: ruby/setup-ruby@v1
|
|
with:
|
|
ruby-version: ${{ matrix.ruby_version }}
|
|
bundler-cache: true
|
|
- name: Run Minitest based tests
|
|
run: bash script/test
|
|
- name: Run Cucumber based tests
|
|
run: bash script/cucumber
|
|
- name: Generate and Build a new site
|
|
run: bash script/default-site
|
|
|
|
xtras:
|
|
name: "${{ matrix.job_name }} (Ruby ${{ matrix.ruby_version }})"
|
|
runs-on: "ubuntu-latest"
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- job_name: "Profile Docs Site"
|
|
step_name: "Build and Profile docs site"
|
|
script_file: "profile-docs"
|
|
ruby_version: "2.5"
|
|
- job_name: "Style Check"
|
|
step_name: "Run RuboCop"
|
|
script_file: "fmt"
|
|
ruby_version: "2.5"
|
|
steps:
|
|
- name: Checkout Repository
|
|
uses: actions/checkout@v2
|
|
- name: "Set up Ruby ${{ matrix.ruby_version }}"
|
|
uses: ruby/setup-ruby@v1
|
|
with:
|
|
ruby-version: ${{ matrix.ruby_version }}
|
|
bundler-cache: true
|
|
- name: ${{ matrix.step_name }}
|
|
run: bash script/${{ matrix.script_file }}
|