summaryrefslogtreecommitdiff
path: root/.github/workflows/check_misc.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/check_misc.yml')
-rw-r--r--.github/workflows/check_misc.yml93
1 files changed, 63 insertions, 30 deletions
diff --git a/.github/workflows/check_misc.yml b/.github/workflows/check_misc.yml
index 54f8df66a2..cb1642b9e2 100644
--- a/.github/workflows/check_misc.yml
+++ b/.github/workflows/check_misc.yml
@@ -18,9 +18,14 @@ jobs:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
+ - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
with:
token: ${{ (github.repository == 'ruby/ruby' && !startsWith(github.event_name, 'pull')) && secrets.MATZBOT_AUTO_UPDATE_TOKEN || secrets.GITHUB_TOKEN }}
+ persist-credentials: false
+
+ - uses: ruby/setup-ruby@afeafc3d1ab54a631816aba4c914a0081c12ff2f # v1.310.0
+ with:
+ ruby-version: head
- uses: ./.github/actions/setup/directories
with:
@@ -28,23 +33,34 @@ jobs:
# Skip overwriting MATZBOT_AUTO_UPDATE_TOKEN
checkout: '' # false (ref: https://github.com/actions/runner/issues/2238)
- # Run this step first to make sure auto-style commits are pushed
- - name: ${{ github.ref == 'refs/heads/master' && 'Auto-correct' || 'Check for' }} code styles
+ - name: Re-generate Makefiles
+ run: |
+ # config.status needs to run as a shell script
+ { echo ':&&exit'; cat tool/prereq.status; } > config.status
+ : # same as actions/setup/directories/action.yml
+ for mk in Makefile GNUmakefile; do
+ sed -f tool/prereq.status template/$mk.in > $mk
+ done
+
+ - name: Check for code styles
run: |
set -x
- ruby tool/auto-style.rb "$GITHUB_OLD_SHA" "$GITHUB_NEW_SHA" "$PUSH_REF"
+ ruby tool/auto-style.rb "$GITHUB_OLD_SHA" "$GITHUB_NEW_SHA"
env:
- EMAIL: svn-admin@ruby-lang.org
- GIT_AUTHOR_NAME: git
- GIT_COMMITTER_NAME: git
GITHUB_OLD_SHA: ${{ github.event.pull_request.base.sha }}
GITHUB_NEW_SHA: ${{ github.event.pull_request.merge_commit_sha }}
- PUSH_REF: ${{ github.ref == 'refs/heads/master' && github.ref || '' }}
+ # Skip 'push' events because post_push.yml fixes them on push
if: ${{ github.repository == 'ruby/ruby' && startsWith(github.event_name, 'pull') }}
- - name: Check if C-sources are US-ASCII
+ - name: Check if date in man pages is up-to-date
run: |
- grep -r -n --include='*.[chyS]' --include='*.asm' $'[^\t-~]' -- . && exit 1 || :
+ git fetch origin --depth=1 "${GITHUB_OLD_SHA}"
+ git diff --exit-code --name-only "${GITHUB_OLD_SHA}" HEAD -- man ||
+ make V=1 GIT=git BASERUBY=ruby update-man-date
+ git diff --color --no-ext-diff --ignore-submodules --exit-code -- man
+ env:
+ GITHUB_OLD_SHA: ${{ github.event.pull_request.base.sha }}
+ if: ${{ startsWith(github.event_name, 'pull') }}
- name: Check for bash specific substitution in configure.ac
run: |
@@ -61,29 +77,38 @@ jobs:
exit $fail
working-directory: include
+ - id: now
+ run: |
+ date +"mon=%-m"%n"day=%-d" >> $GITHUB_OUTPUT
+ env:
+ TZ: Asia/Tokyo
+
+ - id: deprecation
+ run: |
+ eval $(sed -n 's/^#define RUBY_API_VERSION_\(MAJOR\|MINOR\) /\1=/p' include/ruby/version.h)
+ if git --no-pager grep --color -o 'rb_warn_deprecated_to_remove_at('$MAJOR'\.'$MINOR',.*' -- '*.c' >&2; then
+ false
+ else
+ true
+ fi
+ continue-on-error: ${{ steps.now.outputs.mon < 12 }}
+
- name: Check if to generate documents
id: rdoc
run: |
- ref=$(sed 's/#.*//;/^rdoc /!d' gems/bundled_gems | awk '{print $4}')
- echo ref=$ref >> $GITHUB_OUTPUT
- # Generate only when document commit/PR
- if: >-
- ${{false
- || contains(github.event.head_commit.message, '[ruby/rdoc]')
- || contains(github.event.head_commit.message, '[DOC]')
- || contains(github.event.pull_request.title, '[DOC]')
- || contains(github.event.pull_request.labels.*.name, 'Documentation')
- }}
+ set -- $(sed 's/#.*//;/^rdoc /!d' gems/bundled_gems)
+ { echo version=$2; echo ref=$4; } >> $GITHUB_OUTPUT
- name: Checkout rdoc
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
+ uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
with:
repository: ruby/rdoc
ref: ${{ steps.rdoc.outputs.ref }}
- path: .bundle/gems/rdoc-0
+ path: .bundle/gems/rdoc-${{ steps.rdoc.outputs.version }}
+ persist-credentials: false
if: ${{ steps.rdoc.outputs.ref != '' }}
- - name: Generate rdoc
+ - name: Generate rdoc scripts
run: |
set -x
gempath=$(ruby -e 'print Gem.user_dir, "/bin"')
@@ -92,21 +117,29 @@ jobs:
bundle config --local path vendor/bundle
bundle install --jobs 4
bundle exec rake generate
- working-directory: .bundle/gems/rdoc-0
+ working-directory: .bundle/gems/rdoc-${{ steps.rdoc.outputs.version }}
if: ${{ steps.rdoc.outputs.ref != '' }}
+ - name: Core docs coverage
+ run: |
+ make XRUBY=ruby RDOC_DEPENDS= RBCONFIG=update-rbconfig rdoc-coverage
+
- name: Generate docs
id: docs
run: |
- $RDOC -C -x ^ext -x ^lib .
- $RDOC --op html .
+ make XRUBY=ruby RDOC_DEPENDS= RBCONFIG=update-rbconfig HTMLOUT=html html
echo htmlout=ruby-html-${GITHUB_SHA:0:10} >> $GITHUB_OUTPUT
- env:
- RDOC: ruby -W0 --disable-gems tool/rdoc-srcdir -q
- if: ${{ steps.rdoc.outcome == 'success' }}
+ # Generate only when document commit/PR
+ if: >-
+ ${{false
+ || contains(github.event.head_commit.message, '[ruby/rdoc]')
+ || contains(github.event.head_commit.message, '[DOC]')
+ || contains(github.event.pull_request.title, '[DOC]')
+ || contains(github.event.pull_request.labels.*.name, 'Documentation')
+ }}
- name: Upload docs
- uses: actions/upload-artifact@v4
+ uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
path: html
name: ${{ steps.docs.outputs.htmlout }}