feat(ci): add more package linting tools #5239
Workflow file for this run
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
# Copyright © Michal Čihař <michal@weblate.org> | |
# | |
# SPDX-License-Identifier: MIT | |
name: Distribution | |
on: [push, pull_request] | |
jobs: | |
setup: | |
name: Build packages | |
runs-on: ubuntu-24.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.13' | |
- uses: astral-sh/setup-uv@v4 | |
with: | |
enable-cache: true | |
cache-dependency-glob: '' | |
- name: Install dependencies | |
run: uv pip install --system -e .[dev] | |
- name: build sdist | |
run: uv build | |
- name: twine | |
run: uvx twine check dist/* | |
- name: pydistcheck | |
run: uvx pydistcheck --inspect dist/* | |
- name: pyroma | |
run: uvx pyroma dist/*.tar.gz | |
- name: check-wheel-contents | |
run: uvx check-wheel-contents dist/*.whl | |
- name: check-manifest | |
run: uvx check-manifest -v | |
- uses: actions/upload-artifact@v4 | |
with: | |
path: dist/* | |
name: dist | |
release_pypi: | |
if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags') && github.repository == 'WeblateOrg/language-data' | |
runs-on: ubuntu-24.04 | |
name: Publish release to PyPI | |
permissions: | |
# this permission is mandatory for trusted publishing | |
id-token: write | |
needs: | |
- setup | |
steps: | |
- uses: astral-sh/setup-uv@v4 | |
- uses: actions/download-artifact@v4 | |
with: | |
name: dist | |
path: dist | |
- name: Publish package | |
run: uv publish --trusted-publishing always | |
release_github: | |
runs-on: ubuntu-24.04 | |
name: Create release on GitHub | |
permissions: | |
contents: write | |
needs: | |
- setup | |
if: startsWith(github.ref, 'refs/tags/') && github.repository == 'WeblateOrg/language-data' | |
steps: | |
- uses: actions/download-artifact@v4 | |
with: | |
name: dist | |
path: dist | |
- uses: ncipollo/release-action@v1 | |
with: | |
generateReleaseNotes: true | |
artifacts: dist/* |