-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Switch to new CI framework based on Trio
- Loading branch information
1 parent
90bd6c8
commit 092f2b6
Showing
11 changed files
with
751 additions
and
83 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,91 @@ | ||
name: Autodeps | ||
|
||
on: | ||
workflow_dispatch: | ||
schedule: | ||
- cron: '0 0 1 * *' | ||
|
||
jobs: | ||
Autodeps: | ||
if: github.repository_owner == 'CoolCat467' | ||
name: Autodeps | ||
timeout-minutes: 10 | ||
runs-on: 'ubuntu-latest' | ||
# https://docs.github.com/en/code-security/dependabot/working-with-dependabot/automating-dependabot-with-github-actions#changing-github_token-permissions | ||
permissions: | ||
pull-requests: write | ||
issues: write | ||
repository-projects: write | ||
contents: write | ||
|
||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v4 | ||
- name: Setup python | ||
uses: actions/setup-python@v5 | ||
with: | ||
python-version: "3.12" | ||
|
||
- name: Bump dependencies | ||
run: | | ||
python -m pip install -U pip pre-commit | ||
python -m pip install -r test-requirements.txt | ||
uv pip compile --universal --python-version=3.10 --upgrade test-requirements.in -o test-requirements.txt | ||
pre-commit autoupdate --jobs 0 | ||
- name: Install new requirements | ||
run: python -m pip install -r test-requirements.txt | ||
|
||
# apply newer versions' formatting | ||
- name: Black | ||
run: black src/checkers | ||
|
||
- name: uv | ||
run: | | ||
uv pip compile --universal --python-version=3.10 test-requirements.in -o test-requirements.txt | ||
- name: Commit changes and create automerge PR | ||
env: | ||
GH_TOKEN: ${{ github.token }} | ||
run: | | ||
# setup git repo | ||
git switch --force-create autodeps/bump_from_${GITHUB_SHA:0:6} | ||
git config user.name 'github-actions[bot]' | ||
git config user.email '41898282+github-actions[bot]@users.noreply.github.com' | ||
if ! git commit -am "Dependency updates"; then | ||
echo "No changes to commit!" | ||
exit 0 | ||
fi | ||
git push --force --set-upstream origin autodeps/bump_from_${GITHUB_SHA:0:6} | ||
# git push returns before github is ready for a pr, so we poll until success | ||
for BACKOFF in 1 2 4 8 0; do | ||
sleep $BACKOFF | ||
if gh pr create \ | ||
--label dependencies --body "" \ | ||
--title "Bump dependencies from commit ${GITHUB_SHA:0:6}" \ | ||
; then | ||
break | ||
fi | ||
done | ||
if [ $BACKOFF -eq 0 ]; then | ||
echo "Could not create the PR" | ||
exit 1 | ||
fi | ||
# gh pr create returns before the pr is ready, so we again poll until success | ||
# https://github.com/cli/cli/issues/2619#issuecomment-1240543096 | ||
for BACKOFF in 1 2 4 8 0; do | ||
sleep $BACKOFF | ||
if gh pr merge --auto --squash; then | ||
break | ||
fi | ||
done | ||
if [ $BACKOFF -eq 0 ]; then | ||
echo "Could not set automerge" | ||
exit 1 | ||
fi |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,144 @@ | ||
name: CI | ||
|
||
on: | ||
push: | ||
branches-ignore: | ||
- "dependabot/**" | ||
pull_request: | ||
|
||
concurrency: | ||
group: ${{ github.ref }}-${{ github.workflow }}-${{ github.event_name }}${{ github.ref == format('refs/heads/{0}', github.event.repository.default_branch) && format('-{0}', github.sha) || '' }} | ||
cancel-in-progress: true | ||
|
||
jobs: | ||
## Windows: | ||
## name: 'Windows (${{ matrix.python }}, ${{ matrix.arch }}${{ matrix.extra_name }})' | ||
## timeout-minutes: 20 | ||
## runs-on: 'windows-latest' | ||
## strategy: | ||
## fail-fast: false | ||
## matrix: | ||
## python: ['3.10', '3.11', '3.12'] | ||
## arch: ['x86', 'x64'] | ||
## continue-on-error: >- | ||
## ${{ | ||
## ( | ||
## endsWith(matrix.python, '-dev') | ||
## || endsWith(matrix.python, '-nightly') | ||
## ) | ||
## && true | ||
## || false | ||
## }} | ||
## steps: | ||
## - name: Checkout | ||
## uses: actions/checkout@v4 | ||
## - name: Setup python | ||
## uses: actions/setup-python@v5 | ||
## with: | ||
## # This allows the matrix to specify just the major.minor version while still | ||
## # expanding it to get the latest patch version including alpha releases. | ||
## # This avoids the need to update for each new alpha, beta, release candidate, | ||
## # and then finally an actual release version. actions/setup-python doesn't | ||
## # support this for PyPy presently so we get no help there. | ||
## # | ||
## # 'CPython' -> '3.9.0-alpha - 3.9.X' | ||
## # 'PyPy' -> 'pypy-3.9' | ||
## python-version: ${{ fromJSON(format('["{0}", "{1}"]', format('{0}.0-alpha - {0}.X', matrix.python), matrix.python))[startsWith(matrix.python, 'pypy')] }} | ||
## architecture: '${{ matrix.arch }}' | ||
## cache: pip | ||
## cache-dependency-path: test-requirements.txt | ||
## - name: Run tests | ||
## run: ./ci.sh | ||
## shell: bash | ||
|
||
Ubuntu: | ||
name: 'Ubuntu (${{ matrix.python }}${{ matrix.extra_name }})' | ||
timeout-minutes: 10 | ||
runs-on: 'ubuntu-latest' | ||
# Only run for PRs or pushes to main | ||
if: github.event_name == 'pull_request' || (github.event_name == 'push' && github.ref == 'refs/heads/main') | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
python: ['3.10', '3.11', '3.12', '3.13'] | ||
check_formatting: ['0'] | ||
extra_name: [''] | ||
include: | ||
- python: '3.12' | ||
check_formatting: '1' | ||
extra_name: ', check formatting' | ||
continue-on-error: >- | ||
${{ | ||
( | ||
endsWith(matrix.python, '-dev') | ||
|| endsWith(matrix.python, '-nightly') | ||
) | ||
&& true | ||
|| false | ||
}} | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v4 | ||
- name: Setup python | ||
uses: actions/setup-python@v5 | ||
if: "!endsWith(matrix.python, '-dev')" | ||
with: | ||
python-version: ${{ fromJSON(format('["{0}", "{1}"]', format('{0}.0-alpha - {0}.X', matrix.python), matrix.python))[startsWith(matrix.python, 'pypy')] }} | ||
cache: pip | ||
cache-dependency-path: test-requirements.txt | ||
- name: Setup python (dev) | ||
uses: deadsnakes/[email protected] | ||
if: endsWith(matrix.python, '-dev') | ||
with: | ||
python-version: '${{ matrix.python }}' | ||
- name: Run tests | ||
run: ./ci.sh | ||
env: | ||
CHECK_FORMATTING: '${{ matrix.check_formatting }}' | ||
|
||
## macOS: | ||
## name: 'macOS (${{ matrix.python }})' | ||
## timeout-minutes: 15 | ||
## runs-on: 'macos-latest' | ||
## strategy: | ||
## fail-fast: false | ||
## matrix: | ||
## python: ['3.10', '3.11', '3.12'] | ||
## continue-on-error: >- | ||
## ${{ | ||
## ( | ||
## endsWith(matrix.python, '-dev') | ||
## || endsWith(matrix.python, '-nightly') | ||
## ) | ||
## && true | ||
## || false | ||
## }} | ||
## steps: | ||
## - name: Checkout | ||
## uses: actions/checkout@v4 | ||
## - name: Setup python | ||
## uses: actions/setup-python@v5 | ||
## with: | ||
## python-version: ${{ fromJSON(format('["{0}", "{1}"]', format('{0}.0-alpha - {0}.X', matrix.python), matrix.python))[startsWith(matrix.python, 'pypy')] }} | ||
## cache: pip | ||
## cache-dependency-path: test-requirements.txt | ||
## - name: Run tests | ||
## run: ./ci.sh | ||
|
||
## # https://github.com/marketplace/actions/alls-green#why | ||
## check: # This job does nothing and is only used for the branch protection | ||
## | ||
## if: always() | ||
## | ||
## needs: | ||
## - Windows | ||
## - Ubuntu | ||
## - macOS | ||
## | ||
## runs-on: ubuntu-latest | ||
## | ||
## steps: | ||
## - name: Decide whether the needed jobs succeeded or failed | ||
## uses: re-actors/alls-green@release/v1 | ||
## with: | ||
## jobs: ${{ toJSON(needs) }} |
This file was deleted.
Oops, something went wrong.
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
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
Oops, something went wrong.