.github/workflows: add action to update tapioca definitions
- Tapioca is a companion gem to Sorbet that generates RBI files for the Ruby gems in a project. - Whenever Dependabot updates a gem, Tapioca has to regenerate that gem's RBI files so that Sorbet can accurately assess the state of the typing of a codebase. - We also must regenerate Sorbet's view of [things defined at runtime](https://sorbet.org/docs/rbi#the-hidden-definition-rbi): this is what it calls `hidden-definitions`. - Obviously, this got tedious to do manually. So here's an Action that runs every three days and raises a PR if there are any changes. Co-authored-by: Vidushee Amoli <vidushee.amoli@gmail.com> Co-authored-by: Issy Long <me@issyl0.co.uk> Co-authored-by: Jonathan Chang <jchang641@gmail.com> Co-authored-by: Mike McQuaid <mike@mikemcquaid.com>
This commit is contained in:
parent
14ec695c1d
commit
982c7adaf2
57
.github/workflows/tapioca-update.yml
vendored
Normal file
57
.github/workflows/tapioca-update.yml
vendored
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
name: Tapioca Update
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
paths:
|
||||||
|
- .github/workflows/tapioca-update.yml
|
||||||
|
schedule:
|
||||||
|
- cron: '0 0 */3 * *' # every three days
|
||||||
|
env:
|
||||||
|
HOMEBREW_SORBET: 1
|
||||||
|
jobs:
|
||||||
|
update-tapioca:
|
||||||
|
if: github.repository == 'Homebrew/brew'
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Set up Homebrew
|
||||||
|
id: set-up-homebrew
|
||||||
|
uses: Homebrew/actions/setup-homebrew@master
|
||||||
|
|
||||||
|
- name: Configure Git user
|
||||||
|
uses: Homebrew/actions/git-user-config@master
|
||||||
|
with:
|
||||||
|
username: BrewTestBot
|
||||||
|
|
||||||
|
- name: Set up Ruby
|
||||||
|
uses: ruby/setup-ruby@v1
|
||||||
|
with:
|
||||||
|
ruby-version: 2.6.3
|
||||||
|
|
||||||
|
- name: Update Tapioca Definitions
|
||||||
|
run: |
|
||||||
|
cd "$GITHUB_WORKSPACE/Library/Homebrew"
|
||||||
|
bundle install
|
||||||
|
bundle exec tapioca sync --exclude json
|
||||||
|
bundle exec srb rbi hidden-definitions
|
||||||
|
if ! git diff --exit-code -- sorbet; then
|
||||||
|
BRANCH="tapioca-update"
|
||||||
|
if ! git ls-remote --exit-code --heads origin "$BRANCH"; then
|
||||||
|
git checkout -b "$BRANCH"
|
||||||
|
git commit -am "sorbet: Update gem RBI files using Tapioca
|
||||||
|
|
||||||
|
Autogenerated by [a scheduled GitHub Action](https://github.com/Homebrew/brew/actions?query=workflow%3A%22Tapioca+Update%22)."
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: Push commits
|
||||||
|
uses: Homebrew/actions/git-try-push@master
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
branch: tapioca-update
|
||||||
|
directory: Library/Homebrew/
|
||||||
|
|
||||||
|
- name: Open a PR
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
run: |
|
||||||
|
cd "$GITHUB_WORKSPACE/Library/Homebrew"
|
||||||
|
hub pull-request -m "$(git log -1 --format='%s')"
|
||||||
Loading…
x
Reference in New Issue
Block a user