Bump actions/checkout from 4 to 5 #313
Workflow file for this run
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: Miscellaneous checks | |
| on: [push, pull_request] | |
| concurrency: | |
| group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') && github.ref_name || github.sha }} | |
| cancel-in-progress: ${{ startsWith(github.event_name, 'pull') }} | |
| jobs: | |
| checks: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Check if C-sources are US-ASCII | |
| run: | | |
| ! grep -r -n '[^ -~]' *.[chy] include internal win32/*.[ch] | |
| - name: Check for trailing spaces | |
| run: | | |
| ! git grep -n '[ ]$' '*.rb' '*.[chy]' | |
| - name: Check for header macros | |
| run: | | |
| ! for header in ruby/*.h; do \ | |
| git grep -l -F -e $header -e HAVE_`echo $header | tr a-z./ A-Z__` -- . > /dev/null || echo $header | |
| done | grep -F . | |
| working-directory: include | |
| - uses: actions/cache@v4 | |
| with: | |
| path: .downloaded-cache | |
| key: downloaded-cache-${{ github.sha }} | |
| restore-keys: | | |
| downloaded-cache | |
| - name: Download previous gems list | |
| run: | | |
| data=default_gems.json | |
| mkdir -p .downloaded-cache | |
| ln -s .downloaded-cache/$data . | |
| curl -O -R -z ./$data https://stdgems.org/$data | |
| - name: Make default gems list | |
| run: | | |
| #!ruby | |
| require 'rubygems' | |
| $:.unshift "lib" | |
| rgver = File.foreach("lib/rubygems.rb") do |line| | |
| break $1 if /^\s*VERSION\s*=\s*"([^"]+)"/ =~ line | |
| end | |
| gems = Dir.glob("{ext,lib}/**/*.gemspec").map do |f| | |
| spec = Gem::Specification.load(f) | |
| "#{spec.name} #{spec.version}" | |
| end.sort | |
| File.open("gems/default_gems", "w") do |f| | |
| f.puts "RubyGems #{rgver}" | |
| f.puts gems | |
| end | |
| shell: ruby --disable=gems {0} | |
| - name: Maintain updated gems list in NEWS | |
| run: | | |
| #!ruby | |
| require 'json' | |
| news = File.read("NEWS.md") | |
| prev = news[/since the \*+(\d+\.\d+\.\d+)\*+/, 1] | |
| prevs = [prev, prev.sub(/\.\d+\z/, '')] | |
| %W[default].each do |type| | |
| last = JSON.parse(File.read("#{type}_gems.json"))['gems'].filter_map do |g| | |
| v = g['versions'].values_at(*prevs).compact.first | |
| g = g['gem'] | |
| g = 'RubyGems' if g == 'rubygems' | |
| [g, v] if v | |
| end.to_h | |
| changed = File.foreach("gems/#{type}_gems").filter_map do |l| | |
| next if l.start_with?("#") | |
| g, v = l.split(" ", 3) | |
| [g, v] unless last[g] == v | |
| end | |
| news.sub!(/^\*( +)The following #{type} gems? are updated\.\n\K(?: \1\* .*\n)*/) do | |
| mark = "#{$1} * " | |
| changed.map {|g, v|"#{mark}#{g} #{v}\n"}.join("") | |
| end or next | |
| File.write("NEWS.md", news) | |
| end | |
| shell: ruby {0} | |
| - name: Check diffs | |
| id: diff | |
| run: | | |
| git diff --color --no-ext-diff --ignore-submodules --exit-code NEWS.md | |
| continue-on-error: true | |
| - name: Commit | |
| run: | | |
| git pull --ff-only origin ${GITHUB_REF#refs/heads/} | |
| git commit --message="Update default gems list at ${GITHUB_SHA:0:30} [ci skip]" NEWS.md | |
| git push origin ${GITHUB_REF#refs/heads/} | |
| env: | |
| EMAIL: svn-admin@ruby-lang.org | |
| GIT_AUTHOR_NAME: git | |
| GIT_COMMITTER_NAME: git | |
| if: ${{ github.repository == 'ruby/ruby' && !startsWith(github.event_name, 'pull') && steps.diff.outcome == 'failure' }} |