Translations update from Hosted Weblate #26641
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: GPL-3.0-or-later | |
name: Distribution | |
on: | |
push: | |
branches-ignore: | |
- deepsource-fix-** | |
- renovate/** | |
- weblate | |
tags: | |
- weblate-* | |
pull_request: | |
permissions: | |
contents: read | |
jobs: | |
setup: | |
runs-on: ubuntu-24.04 | |
env: | |
PYTHONUNBUFFERED: 1 | |
PYTHONWARNINGS: default,ignore:unclosed:ResourceWarning | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install apt dependencies | |
run: sudo ./ci/apt-install | |
- uses: astral-sh/setup-uv@v3 | |
with: | |
enable-cache: true | |
cache-dependency-glob: '' | |
cache-suffix: '3.12' | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.12' | |
- name: Used versions | |
run: ./ci/print-versions | |
- name: Install Python dependencies | |
run: ./ci/pip-install | |
- name: Install setuptools | |
run: uv pip install --system $(sed -n 's/.*"\(setuptools[<>=]=\([^"]*\)\)".*/\1/p' pyproject.toml) | |
- name: Install Weblate | |
run: coverage run ./setup.py install | |
- name: Check difference | |
run: diff -ruNqp weblate $(python -c 'import weblate; import os; print(os.path.dirname(weblate.__file__))') | |
- name: Coverage | |
run: | | |
coverage combine | |
coverage xml | |
- uses: codecov/codecov-action@v4 | |
with: | |
token: ${{secrets.CODECOV_TOKEN}} | |
flags: setup | |
name: setup | |
pip: | |
runs-on: ubuntu-24.04 | |
env: | |
PYTHONUNBUFFERED: 1 | |
PYTHONWARNINGS: default,ignore:unclosed:ResourceWarning | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install apt dependencies | |
run: sudo ./ci/apt-install | |
- uses: astral-sh/setup-uv@v3 | |
with: | |
enable-cache: true | |
cache-dependency-glob: '' | |
cache-suffix: '3.12' | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.12' | |
- name: Used versions | |
run: ./ci/print-versions | |
- name: Install Python dependencies | |
run: ./ci/pip-install | |
- name: Install Weblate | |
run: uv pip install --system '.[all]' | |
- name: Check difference | |
run: diff -ruNqp weblate $(python -c 'import weblate; import os; print(os.path.dirname(weblate.__file__))') | |
dist: | |
runs-on: ubuntu-24.04 | |
env: | |
PYTHONUNBUFFERED: 1 | |
PYTHONWARNINGS: default,ignore:unclosed:ResourceWarning | |
permissions: | |
# Needed for Sigstore | |
id-token: write | |
# Needed for attestations | |
attestations: write | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: astral-sh/setup-uv@v3 | |
- name: Setup Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.12' | |
- name: Install Python dependencies | |
run: | | |
uv pip install --system $(sed -n 's/.*"\(twine==\([^"]*\)\)".*/\1/p' pyproject.toml) | |
uv pip install --system $(sed -n 's/.*"\(build==\([^"]*\)\)".*/\1/p' pyproject.toml) | |
- name: build | |
run: python -m build | |
- name: Twine check | |
run: twine check dist/* | |
- name: Sign the dists with Sigstore | |
if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/weblate') | |
uses: sigstore/gh-action-sigstore-python@v3.0.0 | |
with: | |
inputs: dist/* | |
- name: Attest | |
if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/weblate') | |
uses: actions/attest-build-provenance@v1 | |
with: | |
subject-path: dist/* | |
- uses: actions/upload-artifact@v4 | |
if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/weblate') | |
with: | |
path: dist/* | |
name: dist | |
notes: | |
runs-on: ubuntu-24.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: astral-sh/setup-uv@v3 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.12' | |
- name: Install apt dependencies | |
run: | | |
sudo apt update | |
sudo apt install -y graphviz pandoc | |
- name: Install Python dependencies | |
run: uv pip install --system -r docs/requirements.txt | |
- name: Sphinx build | |
run: ./ci/run-docs | |
- name: Convert release notes | |
run: | | |
version=$(sed -n '/^VERSION =/ s/.*"\(.*\)"/\1/p' weblate/utils/version.py) | |
namever="weblate-$version" | |
sed "s/latest/$namever/" < scripts/release-notes-filter.lua > scripts/release-notes-filter.version.lua | |
mkdir dist | |
./scripts/extract-release-notes > "dist/Weblate-$version.html" | |
pandoc "dist/Weblate-$version.html" --write=gfm --wrap=none --lua-filter=scripts/release-notes-filter.version.lua -o "dist/Weblate-$version.md" | |
rm scripts/release-notes-filter.version.lua | |
- uses: actions/upload-artifact@v4 | |
with: | |
path: dist/* | |
name: notes | |
publish_pypi: | |
if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/weblate') | |
permissions: | |
# this permission is mandatory for trusted publishing | |
id-token: write | |
needs: | |
- notes | |
- dist | |
runs-on: ubuntu-24.04 | |
steps: | |
- uses: actions/download-artifact@v4 | |
- name: Cleanup dist | |
# Remove files not supported on PyPI (eg. Sigstore signatures) | |
run: find dist -mindepth 1 -not -name '*.tar.gz' -not -name '*.whl' -delete | |
- name: Publish package distributions to PyPI | |
uses: pypa/gh-action-pypi-publish@release/v1 | |
publish_github: | |
if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/weblate') | |
permissions: | |
# this permission is mandatory for creating a release | |
contents: write | |
needs: | |
- notes | |
- dist | |
runs-on: ubuntu-24.04 | |
steps: | |
- uses: actions/download-artifact@v4 | |
- name: Extract notes body | |
run: tail -n+3 notes/Weblate-*.md > notes.md | |
- name: Extract notes title | |
id: get-name | |
run: echo name=$(head -n1 notes/Weblate-*.md) > "$GITHUB_OUTPUT" | |
- uses: ncipollo/release-action@v1 | |
with: | |
artifacts: dist/* | |
bodyFile: notes.md | |
name: ${{ steps.get-name.outputs.name }} |