-
Notifications
You must be signed in to change notification settings - Fork 42
96 lines (86 loc) · 4.16 KB
/
release-sync-translations.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
name: Release: Sync Translations
on:
workflow_dispatch: # Allows you to run this workflow manually from the Actions tab
workflow_call:
secrets:
TRANSLATIONS_DEPLOY_HOST:
required: true
TRANSLATIONS_DEPLOY_USER:
required: true
TRANSLATIONS_DEPLOY_SSH_KEY:
required: true
TRANSLATIONS_DEPLOY_POT_LOCATION:
required: true
jobs:
sync-translations:
name: 🔁 Sync Translations
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.sha }}
- name: Set Variables
id: vars
run: |
branch_name="${{ github.head_ref || github.ref_name }}"
should_glotpress=0
if [[ "$branch_name" =~ ^release/.* || "$branch_name" == "master" || "$branch_name" == "main" ]]; then
should_glotpress=1
fi
echo "should_glotpress=$should_glotpress" >> $GITHUB_OUTPUT
echo "sha_short=$(git rev-parse --short ${{ github.sha }})" >> $GITHUB_OUTPUT
- name: Fetch Plugin Slug from .puprc
id: puprc
run: |
plugin_slug=$(jq '.i18n | map(select(.url | contains("translations.stellarwp.com")) | .slug) | first' .puprc)
echo "plugin_slug=$plugin_slug" >> $GITHUB_ENV
echo "plugin_slug=$plugin_slug" >> $GITHUB_OUTPUT
echo "## Plugin Slug: \`$plugin_slug\`" >> $GITHUB_STEP_SUMMARY
- uses: the-events-calendar/actions/.github/actions/generate-pot@main
id: generate-pot
with:
plugin_path: ${{ github.workspace }}
pot_path: ${{github.workspace}}/lang/${{ steps.puprc.outputs.plugin_slug }}.pot
- uses: the-events-calendar/actions/.github/actions/push-translations@main
id: push-translations
if: steps.vars.outputs.should_glotpress == '1'
with:
plugin_slug: ${{ steps.puprc.outputs.plugin_slug }}
pot_path: lang/${{ steps.puprc.outputs.plugin_slug }}.pot
env:
TRANSLATIONS_DEPLOY_HOST: ${{ secrets.TRANSLATIONS_DEPLOY_HOST }}
TRANSLATIONS_DEPLOY_USER: ${{ secrets.TRANSLATIONS_DEPLOY_USER }}
TRANSLATIONS_DEPLOY_SSH_KEY: ${{ secrets.TRANSLATIONS_DEPLOY_SSH_KEY }}
TRANSLATIONS_DEPLOY_POT_LOCATION: ${{ secrets.TRANSLATIONS_DEPLOY_POT_LOCATION }}
- uses: the-events-calendar/actions/.github/actions/add-changelog@main
id: add-changelog-entry
if: steps.vars.outputs.should_glotpress == '1'
with:
file: "task-i18n-${{ steps.vars.outputs.sha_short }}"
significance: patch
type: language
entry: "${{ steps.push-translations.outputs.glotpress-result }}"
- name: Create Pull Request
uses: peter-evans/create-pull-request@v7
id: create-pull-request
with:
token: ${{ secrets.GHA_BOT_TOKEN_MANAGER }}
base: ${{ github.head_ref || github.ref_name }}
branch: "task/i18n-update-${{ github.head_ref || github.ref_name }}-with-${{ steps.vars.outputs.sha_short }}"
title: "[BOT] Generate POT file for '${{ github.head_ref || github.ref_name }}'"
assignees: ${{ github.actor }}
reviewers: the-events-calendar/engineers
body: |
This is an automated PR created by ${{ github.actor }}.
It was generated by [this GitHub Action](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}).
labels: "automation"
commit-message: |
:symbols: Updating .pot file and add language changelog for ${{ github.sha }}
This is an automated PR created by ${{ github.actor }}.
Generated by: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}
- name: Check outputs
if: ${{ steps.create-pull-request.outputs.pull-request-number }}
run: |
echo "## Pull Request" >> $GITHUB_STEP_SUMMARY
echo "* Number - ${{ steps.create-pull-request.outputs.pull-request-number }}" >> $GITHUB_STEP_SUMMARY
echo "* URL - [${{ steps.create-pull-request.outputs.pull-request-url }}](${{ steps.create-pull-request.outputs.pull-request-url }})" >> $GITHUB_STEP_SUMMARY