rolling #133
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
# Run scheduled (rolling) jobs on a nightly basis, as your crate may break independently of any | |
# given PR. E.g., updates to rust nightly and updates to this crates dependencies. See check.yml for | |
# information about how the concurrency cancellation and workflow triggering works | |
permissions: | |
contents: read | |
on: | |
push: | |
branches: [main] | |
pull_request: | |
schedule: | |
- cron: "7 7 * * *" | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
name: rolling | |
env: | |
UV_VERSION: "0.5.1" | |
jobs: | |
# https://twitter.com/mycoliza/status/1571295690063753218 | |
nightly: | |
runs-on: ubuntu-latest | |
name: ubuntu / 3.14-dev | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Set up uv | |
uses: astral-sh/setup-uv@v3 | |
with: | |
version: ${{ env.UV_VERSION }} | |
enable-cache: true | |
- name: Install python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.14-dev" | |
- run: python --version | |
- name: uv lock | |
if: hashFiles('uv.lock') == '' | |
run: uv lock | |
- name: uv sync --dev | |
run: uv sync --dev | |
- name: make test | |
run: make test | |
# https://twitter.com/alcuadrado/status/1571291687837732873 | |
update: | |
# This action checks that updating the dependencies of this crate to the latest available that | |
# satisfy the versions in pyproject.toml does not break this crate. This is important as consumers | |
# of this crate will generally use the latest available crates. This is subject to the standard | |
# Cargo semver rules (i.e cargo does not update to a new major version unless explicitly told | |
# to). | |
runs-on: ubuntu-latest | |
name: ubuntu / 3.12 / updates work | |
# There's no point running this if no uv.lock was checked in in the first place, since we'd | |
# just redo what happened in the regular test job. Unfortunately, hashFiles only works in if on | |
# steps, so we repeat it. | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Set up uv | |
if: hashFiles('uv.lock') != '' | |
uses: astral-sh/setup-uv@v3 | |
with: | |
version: ${{ env.UV_VERSION }} | |
enable-cache: true | |
- name: Install 3.12 | |
if: hashFiles('uv.lock') != '' | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.12" | |
- name: uv sync --dev --upgrade | |
if: hashFiles('uv.lock') != '' | |
run: uv sync --dev --upgrade | |
- name: make test | |
if: hashFiles('uv.lock') != '' | |
run: make test |