-
Notifications
You must be signed in to change notification settings - Fork 25
build: pin uv version and add linter concurrency #495
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
646a08e
a703530
2f4699e
fef98ba
0d976ff
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| issuer: https://token.actions.githubusercontent.com | ||
| subject_pattern: "repo:github-community-projects/evergreen:pull_request" | ||
| claim_pattern: | ||
| job_workflow_ref: "github-community-projects/evergreen/.github/workflows/update-uv-lock.yml@.*" | ||
|
|
||
| permissions: | ||
| contents: write |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,2 @@ | ||
| [codespell] | ||
| ignore-words-list = astroid |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,5 +1,5 @@ | ||
| { | ||
| "threshold": 25, | ||
| "ignore": ["/github/workspace/test*"], | ||
| "ignore": ["test*", "**/.venv/**"], | ||
| "absolute": true | ||
| } |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,45 @@ | ||
| --- | ||
| name: Update uv.lock | ||
|
|
||
| on: | ||
| pull_request: | ||
| paths: | ||
| - pyproject.toml | ||
|
|
||
| permissions: | ||
| id-token: write | ||
|
|
||
| jobs: | ||
| update-lock: | ||
| if: github.event.pull_request.user.login == 'dependabot[bot]' | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - name: Get GitHub App token via octo-sts | ||
| uses: octo-sts/action@f603d3be9d8dd9871a265776e625a27b00effe05 # v1.1.1 | ||
| id: octo-sts | ||
| with: | ||
| scope: github-community-projects/evergreen | ||
| identity: update-uv-lock | ||
|
|
||
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | ||
| with: | ||
| ref: ${{ github.head_ref }} | ||
| persist-credentials: true # Use the workflow temporary token from octo-sts to allow pushing changes back to the dependabot branch | ||
| token: ${{ steps.octo-sts.outputs.token }} | ||
|
|
||
| - name: Install uv | ||
| uses: astral-sh/setup-uv@5a095e7a2014a4212f075830d4f7277575a9d098 # v7.3.1 | ||
| with: | ||
| version: "0.10.9" | ||
| enable-cache: true | ||
|
|
||
| - name: Update uv.lock | ||
| run: uv lock | ||
|
|
||
| - name: Commit and push updated lockfile | ||
| run: | | ||
| git config user.name "octo-sts[bot]" | ||
| git config user.email "801323+octo-sts[bot]@users.noreply.github.com" | ||
| git add uv.lock | ||
| git diff --cached --quiet || git commit -s -m "chore(deps): update uv.lock" | ||
| git push |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -158,5 +158,8 @@ devenv.local.nix | |
| devenv.* | ||
| .devenv* | ||
|
|
||
| # Claude | ||
| **/.claude/*.local.* | ||
|
|
||
| # Local testing files | ||
| dependabot-output.yaml | ||
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -5,9 +5,11 @@ FROM python:3.14.0-slim@sha256:0aecac02dc3d4c5dbb024b753af084cafe41f5416e02193f1 | |||||
| LABEL org.opencontainers.image.source https://github.com/github-community-projects/evergreen | ||||||
|
|
||||||
| WORKDIR /action/workspace | ||||||
| COPY requirements.txt *.py /action/workspace/ | ||||||
| COPY pyproject.toml uv.lock *.py /action/workspace/ | ||||||
|
|
||||||
| RUN python3 -m pip install --no-cache-dir --no-deps -r requirements.txt \ | ||||||
| COPY --from=ghcr.io/astral-sh/uv:0.10.9@sha256:10902f58a1606787602f303954cea099626a4adb02acbac4c69920fe9d278f82 /uv /uvx /bin/ | ||||||
|
|
||||||
| RUN uv sync --frozen --no-dev --no-editable \ | ||||||
| && apt-get -y update \ | ||||||
| && apt-get -y install --no-install-recommends git=1:2.47.3-0+deb13u1 \ | ||||||
| && rm -rf /var/lib/apt/lists/* | ||||||
|
|
@@ -16,5 +18,6 @@ RUN python3 -m pip install --no-cache-dir --no-deps -r requirements.txt \ | |||||
| HEALTHCHECK --interval=30s --timeout=10s --start-period=10s --retries=3 \ | ||||||
| CMD python3 -c "import os,sys; sys.exit(0 if os.path.exists('/action/workspace/evergreen.py') else 1)" | ||||||
|
|
||||||
| ENV PYTHONUNBUFFERED=1 | ||||||
| CMD ["/action/workspace/evergreen.py"] | ||||||
|
||||||
| CMD ["/action/workspace/evergreen.py"] | |
| CMD ["python3", "/action/workspace/evergreen.py"] |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,25 @@ | ||
| [project] | ||
| name = "evergreen" | ||
| version = "1.0.0" | ||
| description = "GitHub Action that enables Dependabot for all repositories in a GitHub organization." | ||
| requires-python = ">=3.11" | ||
| dependencies = [ | ||
| "github3-py==4.0.1", | ||
| "python-dotenv==1.2.1", | ||
| "requests==2.32.5", | ||
| "ruamel-yaml==0.19.1", | ||
| ] | ||
|
Comment on lines
+1
to
+11
|
||
|
|
||
| [dependency-groups] | ||
| dev = [ | ||
| "black==26.1.0", | ||
| "flake8==7.3.0", | ||
| "isort==7.0.0", | ||
| "mypy==1.19.1", | ||
| "mypy-extensions==1.1.0", | ||
| "pylint==4.0.5", | ||
| "pytest==9.0.2", | ||
| "pytest-cov==7.0.0", | ||
| "types-PyYAML==6.0.12.20250915", | ||
| "types-requests==2.32.4.20260107", | ||
| ] | ||
This file was deleted.
This file was deleted.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This workflow previously pinned a specific Python version via
actions/setup-python, but nowuv sync --frozenwill use whatever Python happens to be onubuntu-latestat the time the job runs. That can introduce nondeterministic CI failures asubuntu-latestchanges. Consider explicitly installing/pinning Python (e.g., viauv python install <version>) and passing--python <version>touv synchere as well.