Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

move CI to Github Actions #2244

Merged
merged 12 commits into from
May 21, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
276 changes: 276 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,276 @@
name: ci
on:
workflow_dispatch:
push:
branches:
- main
- v*.*.x
tags:
- v*.*.*
pull_request:
types: [opened, synchronize]
branches:
- '*'

jobs:
rubocop:
runs-on: ubuntu-latest
container:
image: flavorjones/nokogiri-test:mri-3.0
steps:
- uses: actions/checkout@v2
- run: bundle install --local || bundle install
- run: bundle exec rake rubocop

basic:
needs: ["rubocop"]
strategy:
fail-fast: false
matrix:
image: ["bionic", "bionic32"]
sys: ["enable"]
runs-on: ubuntu-latest
container:
image: flavorjones/nokogiri-test:${{matrix.image}}
steps:
- uses: actions/checkout@v1 # v1 because of https://github.com/actions/checkout/issues/334
- run: bundle install --local || bundle install
- run: bundle exec rake compile -- --${{matrix.sys}}-system-libraries
- run: bundle exec rake test

linux:
needs: ["basic"]
strategy:
fail-fast: false
matrix:
sys: ["enable", "disable"]
ruby: ["2.5", "2.6", "2.7", "3.0"]
runs-on: ubuntu-latest
container:
image: flavorjones/nokogiri-test:mri-${{matrix.ruby}}
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v2
if: matrix.sys == 'disable'
with:
path: ports/archives
key: tarballs-${{hashFiles('**/dependencies.yml')}}
restore-keys: tarballs-
- run: bundle install --local || bundle install
- run: bundle exec rake compile -- --${{matrix.sys}}-system-libraries
- run: bundle exec rake test

valgrind:
needs: ["linux"]
strategy:
fail-fast: false
matrix:
sys: ["enable", "disable"]
ruby: ["2.5", "2.6", "2.7", "3.0"]
runs-on: ubuntu-latest
container:
image: flavorjones/nokogiri-test:mri-${{matrix.ruby}}
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v2
if: matrix.sys == 'disable'
with:
path: ports/archives
key: tarballs-${{hashFiles('**/dependencies.yml')}}
restore-keys: tarballs-
- run: bundle install --local || bundle install
- run: bundle exec rake compile -- --${{matrix.sys}}-system-libraries
- run: bundle exec rake test:valgrind

musl:
needs: ["basic"]
strategy:
fail-fast: false
matrix:
sys: ["enable"]
runs-on: ubuntu-latest
container:
image: flavorjones/nokogiri-test:alpine
steps:
- uses: actions/checkout@v1 # v1 because of https://github.com/actions/checkout/issues/334
# skip cache because of https://github.com/actions/checkout/issues/334
- run: bundle install --local || bundle install
- run: bundle exec rake compile -- --${{matrix.sys}}-system-libraries
- run: bundle exec rake test

musl-valgrind:
needs: ["musl"]
strategy:
fail-fast: false
matrix:
sys: ["disable"]
runs-on: ubuntu-latest
container:
image: flavorjones/nokogiri-test:alpine
steps:
- uses: actions/checkout@v1 # v1 because of https://github.com/actions/checkout/issues/334
# skip cache because of https://github.com/actions/checkout/issues/334
- run: bundle install --local || bundle install
- run: bundle exec rake compile -- --${{matrix.sys}}-system-libraries
- run: bundle exec rake test:valgrind

libxmlruby:
needs: ["basic"]
strategy:
fail-fast: false
matrix:
sys: ["enable"]
ruby: ["3.0"]
env:
BUNDLE_GEMFILE: "Gemfile-libxml-ruby"
runs-on: ubuntu-latest
container:
image: flavorjones/nokogiri-test:mri-${{matrix.ruby}}
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v2
if: matrix.sys == 'disable'
with:
path: ports/archives
key: tarballs-${{hashFiles('**/dependencies.yml')}}
restore-keys: tarballs-
- run: bundle install --local || bundle install
- run: bundle exec rake compile -- --${{matrix.sys}}-system-libraries
- run: bundle exec rake test

libxmlruby-valgrind:
needs: ["libxmlruby"]
strategy:
fail-fast: false
matrix:
sys: ["disable"]
ruby: ["3.0"]
env:
BUNDLE_GEMFILE: "Gemfile-libxml-ruby"
runs-on: ubuntu-latest
container:
image: flavorjones/nokogiri-test:mri-${{matrix.ruby}}
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v2
if: matrix.sys == 'disable'
with:
path: ports/archives
key: tarballs-${{hashFiles('**/dependencies.yml')}}
restore-keys: tarballs-
- run: bundle install --local || bundle install
- run: bundle exec rake compile -- --${{matrix.sys}}-system-libraries
- run: bundle exec rake test:valgrind

ruby-head:
needs: ["basic"]
strategy:
fail-fast: false
matrix:
sys: ["enable", "disable"]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: MSP-Greg/setup-ruby-pkgs@v1
with:
ruby-version: "head"
apt-get: "libxml2-dev libxslt1-dev pkg-config"
bundler-cache: true
- uses: actions/cache@v2
if: matrix.sys == 'disable'
with:
path: ports/archives
key: tarballs-${{hashFiles('**/dependencies.yml')}}
restore-keys: tarballs-
- run: bundle exec rake compile -- --${{matrix.sys}}-system-libraries
- run: bundle exec rake test

ruby-head-valgrind:
needs: ["ruby-head"]
strategy:
fail-fast: false
matrix:
sys: ["enable", "disable"]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: MSP-Greg/setup-ruby-pkgs@v1
with:
ruby-version: "head"
apt-get: "libxml2-dev libxslt1-dev pkg-config valgrind"
bundler-cache: true
- uses: actions/cache@v2
if: matrix.sys == 'disable'
with:
path: ports/archives
key: tarballs-${{hashFiles('**/dependencies.yml')}}
restore-keys: tarballs-
- run: bundle exec rake compile -- --${{matrix.sys}}-system-libraries
- run: bundle exec rake test:valgrind

osx:
needs: ["basic"]
strategy:
fail-fast: false
matrix:
sys: ["enable", "disable"]
ruby: ["2.5", "2.6", "2.7", "3.0"]
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- uses: ruby/setup-ruby@v1
with:
ruby-version: ${{matrix.ruby}}
bundler-cache: true
- uses: actions/cache@v2
if: matrix.sys == 'disable'
with:
path: ports/archives
key: tarballs-${{hashFiles('**/dependencies.yml')}}
restore-keys: tarballs-
- run: bundle exec rake compile -- --${{matrix.sys}}-system-libraries
- run: bundle exec rake test

windows:
needs: ["basic"]
strategy:
fail-fast: false
matrix:
sys: ["enable", "disable"]
ruby: ["2.5", "2.6", "2.7", "3.0", "mingw"]
runs-on: windows-latest
steps:
- name: configure git crlf
run: |
git config --system core.autocrlf false
git config --system core.eol lf
- uses: actions/checkout@v2
- uses: MSP-Greg/setup-ruby-pkgs@v1
with:
ruby-version: "${{matrix.ruby}}"
mingw: "libxml2 libxslt"
bundler-cache: true
- uses: actions/cache@v2
if: matrix.sys == 'disable'
with:
path: ports/archives
key: tarballs-${{hashFiles('**/dependencies.yml')}}
restore-keys: tarballs-
- run: bundle exec rake compile -- --${{matrix.sys}}-system-libraries
- run: bundle exec rake test

jruby:
needs: ["basic"]
strategy:
fail-fast: false
matrix:
ruby: ["jruby-9.2", "jruby-head"]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: ruby/setup-ruby@v1
with:
ruby-version: ${{matrix.ruby}}
bundler-cache: true
- run: bundle exec rake compile
- run: bundle exec rake test