Skip to content

Translations update from Hosted Weblate #26641

Translations update from Hosted Weblate

Translations update from Hosted Weblate #26641

Workflow file for this run

# 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 }}