Skip to content

Commit

Permalink
Merge pull request #2244 from sparklemotion/flavorjones-move-ci-to-ac…
Browse files Browse the repository at this point in the history
…tions

move CI to Github Actions
  • Loading branch information
flavorjones committed May 21, 2021
2 parents 8453073 + ee28e6d commit 9c6b2bb
Show file tree
Hide file tree
Showing 11 changed files with 643 additions and 132 deletions.
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

0 comments on commit 9c6b2bb

Please sign in to comment.