upstream #829
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: upstream | |
concurrency: | |
group: "${{github.workflow}}-${{github.ref}}" | |
cancel-in-progress: true | |
on: | |
workflow_dispatch: | |
schedule: | |
- cron: "0 8 * * 1,3,5" # At 08:00 on Monday, Wednesday, and Friday # https://crontab.guru/#0_8_*_*_1,3,5 | |
pull_request: | |
types: [opened, synchronize] | |
branches: | |
- '*' | |
paths: | |
- .github/workflows/upstream.yml # this file | |
jobs: | |
xmlsoft-head: | |
strategy: | |
fail-fast: false | |
matrix: | |
plat: ["ubuntu", "windows", "macos"] | |
runs-on: ${{matrix.plat}}-latest | |
steps: | |
- name: configure git crlf | |
if: matrix.plat == 'windows' | |
run: | | |
git config --system core.autocrlf false | |
git config --system core.eol lf | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- uses: ruby/setup-ruby-pkgs@v1 | |
with: | |
ruby-version: "3.2" | |
apt-get: "autogen libtool shtool" | |
brew: "automake autogen libtool shtool" | |
mingw: "autotools" | |
bundler-cache: true | |
bundler: latest | |
- name: Setup libxml2 | |
env: | |
NOCONFIGURE: t | |
shell: bash | |
run: | | |
git clone --depth=1 https://gitlab.gnome.org/GNOME/libxml2 | |
cd libxml2 | |
git log -n1 | |
./autogen.sh | |
- name: Setup libxslt | |
env: | |
NOCONFIGURE: t | |
shell: bash | |
run: | | |
git clone --depth=1 https://gitlab.gnome.org/GNOME/libxslt | |
cd libxslt | |
git log -n1 | |
./autogen.sh | |
- name: "Compile against libxml2 and libxslt source directories" | |
shell: bash | |
run: "bundle exec rake compile -- --with-xml2-source-dir=${GITHUB_WORKSPACE}/libxml2 --with-xslt-source-dir=${GITHUB_WORKSPACE}/libxslt" | |
- run: "bundle exec rake test" | |
xmlsoft-head-valgrind: | |
runs-on: ubuntu-latest | |
container: | |
image: ghcr.io/sparklemotion/nokogiri-test:mri-3.1 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Setup libxml2 | |
env: | |
NOCONFIGURE: t | |
run: | | |
git clone --depth=1 https://gitlab.gnome.org/GNOME/libxml2 | |
cd libxml2 | |
git log -n1 | |
./autogen.sh | |
- name: Setup libxslt | |
env: | |
NOCONFIGURE: t | |
run: | | |
git clone --depth=1 https://gitlab.gnome.org/GNOME/libxslt | |
cd libxslt | |
git log -n1 | |
./autogen.sh | |
- name: "Run bundle install" | |
run: "bundle install --local || bundle install" | |
- name: "Compile against libxml2 and libxslt source directories" | |
run: "bundle exec rake compile -- --with-xml2-source-dir=${GITHUB_WORKSPACE}/libxml2 --with-xslt-source-dir=${GITHUB_WORKSPACE}/libxslt" | |
- run: "bundle exec rake test:valgrind" | |
- run: "bundle exec rake test:memcheck" | |
ruby-head: | |
strategy: | |
fail-fast: false | |
matrix: | |
plat: ["ubuntu", "windows", "macos"] | |
sys: ["enable", "disable"] | |
runs-on: ${{matrix.plat}}-latest | |
steps: | |
- name: configure git crlf | |
if: matrix.plat == 'windows' | |
run: | | |
git config --system core.autocrlf false | |
git config --system core.eol lf | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- uses: ruby/setup-ruby-pkgs@v1 | |
with: | |
ruby-version: "head" | |
apt-get: "libxml2-dev libxslt1-dev pkg-config" | |
mingw: "_upgrade_ libxml2 libxslt pkgconf" | |
bundler-cache: true | |
bundler: latest | |
- uses: actions/cache@v3 | |
if: matrix.sys == 'disable' | |
with: | |
path: ports | |
key: ports-${{matrix.plat}}-${{hashFiles('dependencies.yml', 'patches/**/*.patch')}} | |
- run: bundle exec rake compile -- --${{matrix.sys}}-system-libraries | |
- run: bundle exec rake test | |
ruby-head-valgrind: | |
strategy: | |
fail-fast: false | |
matrix: | |
sys: ["enable", "disable"] | |
runs-on: ubuntu-20.04 # warning that 22.04 binary has dwarf5 debug info that valgrind can't read | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- uses: ruby/setup-ruby-pkgs@v1 | |
with: | |
ruby-version: "head" | |
apt-get: "libxml2-dev libxslt1-dev pkg-config valgrind" | |
bundler-cache: true | |
bundler: latest | |
- uses: actions/cache@v3 | |
if: matrix.sys == 'disable' | |
with: | |
path: ports | |
key: ports-ubuntu-${{hashFiles('dependencies.yml', 'patches/**/*.patch')}} | |
- run: bundle exec rake compile -- --${{matrix.sys}}-system-libraries | |
- run: bundle exec rake test:valgrind | |
- run: bundle exec rake test:memcheck | |
jruby-head: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: "jruby-head" | |
bundler-cache: true | |
bundler: latest | |
- run: bundle exec rake compile | |
- run: bundle exec rake test | |
html5lib-tests: | |
runs-on: ubuntu-latest | |
container: | |
image: ghcr.io/sparklemotion/nokogiri-test:mri-3.1 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- uses: actions/cache@v3 | |
with: | |
path: ports | |
key: ports-ubuntu-${{hashFiles('dependencies.yml', 'patches/**/*.patch')}} | |
- name: Update html5lib-tests | |
run: | | |
cd test/html5lib-tests | |
git remote update origin | |
git checkout origin/master | |
git log --pretty=oneline -n1 | |
- run: bundle install --local || bundle install | |
- run: bundle exec rake compile -- --disable-system-libraries | |
- run: bundle exec rake test |