mirror of
https://github.com/ruby/ruby.git
synced 2025-08-15 13:39:04 +02:00
118 lines
4.1 KiB
YAML
118 lines
4.1 KiB
YAML
name: Misc
|
|
on: [push, pull_request, merge_group]
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') && github.ref_name || github.sha }}
|
|
cancel-in-progress: ${{ startsWith(github.event_name, 'pull') }}
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
checks:
|
|
name: Miscellaneous checks
|
|
|
|
permissions:
|
|
contents: write # for Git to git push
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
with:
|
|
token: ${{ (github.repository == 'ruby/ruby' && !startsWith(github.event_name, 'pull')) && secrets.MATZBOT_AUTO_UPDATE_TOKEN || secrets.GITHUB_TOKEN }}
|
|
|
|
- uses: ./.github/actions/setup/directories
|
|
with:
|
|
makeup: true
|
|
# 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
|
|
run: |
|
|
set -x
|
|
ruby tool/auto-style.rb "$GITHUB_OLD_SHA" "$GITHUB_NEW_SHA" "$PUSH_REF"
|
|
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 || '' }}
|
|
if: ${{ github.repository == 'ruby/ruby' && startsWith(github.event_name, 'pull') }}
|
|
|
|
- name: Check if C-sources are US-ASCII
|
|
run: |
|
|
grep -r -n --include='*.[chyS]' --include='*.asm' $'[^\t-~]' -- . && exit 1 || :
|
|
|
|
- name: Check for bash specific substitution in configure.ac
|
|
run: |
|
|
git grep -n '\${[A-Za-z_0-9]*/' -- configure.ac && exit 1 || :
|
|
|
|
- name: Check for header macros
|
|
run: |
|
|
fail=
|
|
for header in ruby/*.h; do
|
|
git grep -l -F -e $header -e HAVE_`echo $header | tr a-z./ A-Z__` -- . > /dev/null && continue
|
|
fail=1
|
|
echo $header
|
|
done
|
|
exit $fail
|
|
working-directory: include
|
|
|
|
- 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')
|
|
}}
|
|
|
|
- name: Checkout rdoc
|
|
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
|
with:
|
|
repository: ruby/rdoc
|
|
ref: ${{ steps.rdoc.outputs.ref }}
|
|
path: .bundle/gems/rdoc-0
|
|
if: ${{ steps.rdoc.outputs.ref != '' }}
|
|
|
|
- name: Generate rdoc
|
|
run: |
|
|
set -x
|
|
gempath=$(ruby -e 'print Gem.user_dir, "/bin"')
|
|
PATH=$gempath:$PATH
|
|
gem install --user bundler
|
|
bundle config --local path vendor/bundle
|
|
bundle install --jobs 4
|
|
bundle exec rake generate
|
|
working-directory: .bundle/gems/rdoc-0
|
|
if: ${{ steps.rdoc.outputs.ref != '' }}
|
|
|
|
- name: Generate docs
|
|
id: docs
|
|
run: |
|
|
$RDOC -C -x ^ext -x ^lib .
|
|
$RDOC --op 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' }}
|
|
|
|
- name: Upload docs
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
path: html
|
|
name: ${{ steps.docs.outputs.htmlout }}
|
|
if: ${{ steps.docs.outcome == 'success' }}
|
|
|
|
- uses: ./.github/actions/slack
|
|
with:
|
|
SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot
|
|
if: ${{ failure() }}
|