Merge pull request #243 from znz/redefined-methods-section #301
This file contains hidden or 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: test | |
| # doc/ 等ドキュメントだけの変更では CI を回さない(doctree と同様) | |
| on: | |
| push: | |
| paths-ignore: | |
| - 'doc/**' | |
| - 'README.md' | |
| - 'ChangeLog' | |
| pull_request: | |
| paths-ignore: | |
| - 'doc/**' | |
| - 'README.md' | |
| - 'ChangeLog' | |
| jobs: | |
| ruby-versions: | |
| runs-on: ubuntu-latest | |
| outputs: | |
| versions: ${{ steps.versions.outputs.value }} | |
| steps: | |
| - id: versions | |
| run: | | |
| versions=$(curl -s 'https://cache.ruby-lang.org/pub/misc/ci_versions/cruby.json' | jq -c '. + []') | |
| echo "value=${versions}" >> $GITHUB_OUTPUT | |
| build: | |
| needs: ruby-versions | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| ruby: ${{ fromJson(needs.ruby-versions.outputs.versions) }} | |
| env: | |
| # Released Bundler is broken on ruby-head due to ruby/ruby#16895. | |
| # Use Ruby's bundled Bundler until rubygems/rubygems#9529 is released. | |
| BUNDLER_VERSION: ${{ matrix.ruby == 'head' && '0' || '' }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: ruby/setup-ruby@v1 | |
| with: | |
| ruby-version: ${{ matrix.ruby }} | |
| - name: Install dependencies | |
| run: bundle install | |
| - name: Run test | |
| run: bundle exec rake | |
| typecheck: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: ruby/setup-ruby@v1 | |
| with: | |
| # 型検査は1バージョンで回せば十分(バージョン網羅は build ジョブが担う)。 | |
| # rbs 3.10 / steep 1.9(Gemfile.lock で固定)の検証済み環境である 3.4 を使う | |
| ruby-version: '3.4' | |
| bundler-cache: true | |
| - name: Install RBS collection | |
| # --frozen: rbs_collection.lock.yaml のとおりに取得する。 | |
| # 再解決すると gem_rbs_collection の revision が動き、環境差も出るため | |
| run: bundle exec rbs collection install --frozen | |
| # sig/ が lib/ の全宣言をカバーしているか(rbs subtract の残余ゼロ)+ rbs validate | |
| - name: Check sig coverage | |
| run: bundle exec rake sig | |
| - name: Run steep check | |
| run: bundle exec steep check | |
| rurema: | |
| needs: ruby-versions | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| # NOTE: rurema/doctreeは2.5+しかサポートしていない | |
| ruby: ${{ fromJson(needs.ruby-versions.outputs.versions) }} | |
| env: | |
| # Released Bundler is broken on ruby-head due to ruby/ruby#16895. | |
| # Use Ruby's bundled Bundler until rubygems/rubygems#9529 is released. | |
| BUNDLER_VERSION: ${{ matrix.ruby == 'head' && '0' || '' }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| path: 'bitclust' | |
| - uses: actions/checkout@v4 | |
| with: | |
| repository: 'rurema/doctree' | |
| path: 'doctree' | |
| ref: 'master' | |
| - name: Set up Ruby | |
| uses: ruby/setup-ruby@v1 | |
| with: | |
| ruby-version: ${{ matrix.ruby }} | |
| - name: Install dependencies | |
| run: bundle install | |
| working-directory: ./doctree | |
| - name: Run rake | |
| run: bundle exec rake | |
| working-directory: ./doctree | |
| - name: Create tarballs | |
| run: | | |
| set -ex | |
| mkdir /tmp/artifact | |
| cd /tmp/html | |
| for d in *.*; do | |
| tar acf ../artifact/$d.tar.xz $d | |
| done | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: statichtml-ubuntu-latest-${{ matrix.ruby }} | |
| path: /tmp/artifact/*.tar.xz | |
| - name: Rename generated html | |
| run: | | |
| cd /tmp | |
| mv -v html html.pr | |
| - uses: actions/checkout@v4 | |
| with: | |
| path: 'bitclust' | |
| ref: ${{ github.event.pull_request.base.sha }} | |
| - name: Install dependencies | |
| run: bundle install | |
| working-directory: ./doctree | |
| - name: Run rake | |
| run: bundle exec rake | |
| working-directory: ./doctree | |
| - name: Rename generated html and generate diff | |
| run: | | |
| cd /tmp | |
| mv -v html html.base | |
| git diff --no-index html.base html.pr --stat || true | |
| git diff --no-index html.base html.pr --output artifact/html.diff || true | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: diff-ubuntu-latest-${{ matrix.ruby }} | |
| path: /tmp/artifact/html.diff |