diff --git a/.github/workflows/downstream.yml b/.github/workflows/downstream.yml new file mode 100644 index 00000000000..96c3eee42e0 --- /dev/null +++ b/.github/workflows/downstream.yml @@ -0,0 +1,68 @@ +name: downstream +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 + push: + branches: + - main + - v*.*.x + tags: + - v*.*.* + pull_request: + types: [opened, synchronize] + branches: + - '*' + +jobs: + downstream: + name: downstream-${{matrix.name}} + needs: ["basic"] + strategy: + fail-fast: false + matrix: + include: + - url: https://github.com/flavorjones/loofah + name: loofah + command: "bundle exec rake test" + - url: https://github.com/rails/rails-html-sanitizer + name: rails-html-sanitizer + command: "bundle exec rake test" + - url: https://github.com/rgrove/sanitize + name: sanitize + command: "bundle exec rake test" + - url: https://github.com/ebeigarts/signer + name: signer + command: "bundle exec rake spec" + - url: https://github.com/WinRb/Viewpoint + name: viewpoint + command: "bundle exec rspec spec" + - url: https://github.com/rails/rails + name: xmlmini + command: "cd activesupport && bundle exec rake test TESTOPTS=-n/XmlMini/" + runs-on: ubuntu-latest + container: + image: ghcr.io/sparklemotion/nokogiri-test:mri-3.1 + steps: + - uses: actions/checkout@v2 + with: + submodules: true + - uses: actions/cache@v2 + with: + path: ports + key: ports-ubuntu-${{hashFiles('dependencies.yml', 'patches/**/*.patch')}} + - run: bundle install --local || bundle install + - run: bundle exec rake compile + - run: | + git clone --depth=1 ${{matrix.url}} ${{matrix.name}} + cd ${{matrix.name}} + if grep nokogiri Gemfile ; then + sed -i 's/\(.*nokogiri.*\)/\1, path: ".."/' Gemfile + else + echo "gem 'nokogiri', path: '..'" >> Gemfile + fi + bundle install --local || bundle install + ${{matrix.command}}