Run stubsabot daily #786
This file contains 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: Run stubsabot daily | |
on: | |
workflow_dispatch: | |
schedule: | |
- cron: "0 0 * * *" | |
permissions: | |
contents: write | |
issues: write | |
pull-requests: write | |
env: | |
FORCE_COLOR: 1 | |
jobs: | |
stubsabot: | |
name: Upgrade stubs with stubsabot | |
if: github.repository == 'python/typeshed' | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
# use an ssh key so that checks automatically run on stubsabot PRs | |
ssh-key: ${{ secrets.STUBSABOT_SSH_PRIVATE_KEY }} | |
fetch-depth: 0 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: "3.12" | |
- run: curl -LsSf https://astral.sh/uv/install.sh | sh | |
- name: git config | |
run: | | |
git config --global user.name stubsabot | |
git config --global user.email '<>' | |
- name: Install dependencies | |
run: uv pip install -r requirements-tests.txt --system | |
- name: Run stubsabot | |
run: GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }} python scripts/stubsabot.py --action-level everything | |
# https://gh.neting.ccmunity/t/run-github-actions-job-only-if-previous-job-has-failed/174786/2 | |
create-issue-on-failure: | |
name: Create an issue if stubsabot failed | |
runs-on: ubuntu-latest | |
needs: [stubsabot] | |
if: ${{ github.repository == 'python/typeshed' && always() && (needs.stubsabot.result == 'failure') }} | |
steps: | |
- uses: actions/github-script@v7 | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
script: | | |
await github.rest.issues.create({ | |
owner: "python", | |
repo: "typeshed", | |
title: `Stubsabot failed on ${new Date().toDateString()}`, | |
body: "Stubsabot runs are listed here: https://github.com/python/typeshed/actions/workflows/stubsabot.yml", | |
}) |