Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Sync default gems #1980

Sync default gems

Sync default gems #1980

name: Sync default gems
env:
DEFAULT_GEM_SYNC_ENABLED: true
on:
workflow_dispatch:
inputs:
gem:
required: true
description: 'Name of the gem to be synchronized'
type: string
before:
required: true
description: 'Gem commit SHA before sync'
type: string
after:
required: true
description: 'Gem commit SHA after sync'
type: string
permissions:
contents: read
jobs:
sync_default_gems:
name: Sync default gem ${{ github.event.inputs.gem }}
permissions:
contents: write # for Git to git push
runs-on: ubuntu-latest
if: ${{ github.repository == 'ruby/ruby' }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # zizmor: ignore[artipacked]
name: Check out ruby/ruby
with:
token: ${{ github.repository == 'ruby/ruby' && secrets.MATZBOT_AUTO_UPDATE_TOKEN || secrets.GITHUB_TOKEN }}
- uses: ruby/setup-ruby@6aaa311d81eba98ae12eaffbcb63296ace0efcde # v1.307.0
with:
ruby-version: '3.4'
bundler: none
- name: Run tool/sync_default_gems.rb
id: sync
run: |
ruby_before=$(git rev-parse HEAD)
set -x
ruby tool/sync_default_gems.rb "${gem_name}" "${gem_before}..${gem_after}"
if [[ "$(git rev-parse HEAD)" != "$ruby_before" ]]; then
echo update=true >> $GITHUB_OUTPUT
fi
env:
gem_name: ${{ github.event.inputs.gem }}
gem_before: ${{ github.event.inputs.before }}
gem_after: ${{ github.event.inputs.after }}
EMAIL: [email protected]
GIT_AUTHOR_NAME: git
GIT_COMMITTER_NAME: git
- name: Push
run: |
git pull --rebase origin ${GITHUB_REF#refs/heads/}
git push origin ${GITHUB_REF#refs/heads/}
if: ${{ steps.sync.outputs.update && env.DEFAULT_GEM_SYNC_ENABLED == 'true' }}
env:
EMAIL: [email protected]
GIT_AUTHOR_NAME: git
GIT_COMMITTER_NAME: git
- uses: ./.github/actions/slack
with:
SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot
label: "${{ github.event.inputs.gem }} (<https://github.com/${{ github.event.inputs.gem == 'rubygems' && 'rubygems' || 'ruby' }}/${{ github.event.inputs.gem }}/compare/${{ github.event.inputs.before }}...${{ github.event.inputs.after }}|diff>)"
event_name: workflow_dispatch
extra_channel_id: C05FPKAU743 # alerts-sync
if: ${{ failure() }}