Skip to content

Commit

Permalink
Workflow for *.po retrieval from weblate
Browse files Browse the repository at this point in the history
  • Loading branch information
m-blaha committed Nov 10, 2023
1 parent 3febf5e commit f2e5492
Show file tree
Hide file tree
Showing 4 changed files with 114 additions and 1 deletion.
38 changes: 38 additions & 0 deletions .github/actions/weblate-pull-translations/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: Retrieve *.po files from weblate repository

runs:
using: "composite"
steps:
- name: Clone weblate repository
uses: actions/checkout@v4
with:
repository: ${{ github.repository }}-l10n
path: .l10n

- name: Copy *.po files from weblate repository
shell: bash
run: |
pushd .l10n
for component in $(find . -mindepth 1 -maxdepth 1 -type d -not -path './.*'); do
echo "XXX component: ${component}"
source_path=""
if [ -f "${component}/PATH" ]; then
read -r source_path < "${component}/PATH"
echo "XXX source_path: ${source_path}"
for po in "${component}"/*.po; do
if [ -f "$po" ]; then
echo "XXX po: ${po}"
cp "${po}" "../${source_path}/"
git add "../${source_path}/${po}"
fi
done
fi
done
popd
- name: Commit *.po files
shell: bash
run: |
git config user.name "GitHub Workflow"
git config user.email "[email protected]"
git commit -m "Update translations from weblate"
5 changes: 5 additions & 0 deletions .github/workflows/prepare-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,16 @@ jobs:
- uses: actions/checkout@v3
with:
fetch-depth: 0

- name: Update translations from weblate
uses: ./.github/actions/weblate-pull-translations

- name: Prepare release content
uses: inknos/[email protected]
with:
version: ${{ inputs.version }}
specfiles: dnf5.spec

- name: Create Pull Request
uses: peter-evans/create-pull-request@v4
with:
Expand Down
70 changes: 70 additions & 0 deletions .github/workflows/weblate-sync-po.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
name: Weblate - retrieve translations
on:
schedule:
# Run every monday morning
#- cron: '30 3 * * 1'
- cron: '25 * * * *'
workflow_dispatch:

jobs:
po-refresh:
name: Retrieve *.po files from dnf5-l10n repository
runs-on: ubuntu-latest
steps:
- name: Clone source repository
uses: actions/checkout@v4
with:
ssh-key: ${{ secrets.L10N_SSH_KEY }}
path: src

- name: Clone weblate repository
uses: actions/checkout@v4
with:
repository: ${{ github.repository }}-l10n
path: l10n

# - name: Get branche name
# id: branch-name
# run: echo "BRANCH_NAME=weblate-sync-$(date +"%Y-%m-%d-%H-%M-%S")" >> $GITHUB_OUTPUT

# - name: Prepare a new branch
# run: git -C src checkout -b ${{ steps.branch-name.outputs.BRANCH_NAME }}

- name: Copy .po files from weblate repository
run: |
pushd l10n
for component in $(find . -mindepth 1 -maxdepth 1 -type d -not -path './.*'); do
source_path=""
if [ -f "${component}/PATH" ]; then
read -r source_path < "${component}/PATH"
for po in "${component}"/*.po; do
if [ -f "$po" ]; then
cp "${po}" "../src/${source_path}/"
fi
done
fi
done
popd
- name: Create a pull request
uses: peter-evans/create-pull-request@v4
with:
commit-message: Update translations from Fedora Weblate
title: Update translations from Fedora Weblate
body: Created automatically by Github action
delete-branch: true
path: src
push-to-fork: rpmsoftwaremanagement-l10n/dnf5

# - name: Create a pull request
# env:
# GH_TOKEN: ${{ github.token }}
# run: |
# git config --global user.name "GitHub Workflow"
# git config --global user.email "[email protected]"
# pushd src
# git add "*"
# git commit -m "Update translations from Fedora Weblate"
# git push -u origin ${{ steps.branch-name.outputs.BRANCH_NAME }}
# gh pr create -B main -H ${{ steps.branch-name.outputs.BRANCH_NAME }} --title 'Update translations from Fedora Weblate' --body 'Created automatically by Github action'
# popd
2 changes: 1 addition & 1 deletion .github/workflows/weblate-sync-pot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ jobs:
- name: Commit .pot to weblate repo
run: |
git config --global user.name "GitHub Workflow"
git config --global user.email "mblaha@redhat.com"
git config --global user.email "github-actions@github.com"
pushd src
for f in $(find * -type f -name "*.pot"); do
potfile=$(basename $f)
Expand Down

0 comments on commit f2e5492

Please sign in to comment.