blob: 61567a4d370840dee301658d4dd0fd4e6e659894 (
plain)
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
|
name: Translation Updates
on:
workflow_dispatch:
schedule:
- cron: "0 2 * * 6"
permissions:
actions: read
checks: none
contents: write
deployments: none
issues: read
packages: none
pull-requests: write
repository-projects: none
security-events: none
statuses: none
jobs:
build:
runs-on: ubuntu-latest
services:
mysql:
image: mysql:5.7
env:
MYSQL_ALLOW_EMPTY_PASSWORD: true
MYSQL_ROOT_PASSWORD: ""
MYSQL_DATABASE: piwik_tests
ports:
- 3306/tcp
steps:
- uses: shivammathur/setup-php@36cb9fb0fccf887130d6c5a3d40a3b3479310026
with:
php-version: '7.3'
- uses: actions/checkout@v2
with:
ref: '4.x-dev'
lfs: false
- name: Prepare branches
run: |
cat <<- EOF > $HOME/.netrc
machine github.com
login $GITHUB_ACTOR
password $GITHUB_TOKEN
machine api.github.com
login $GITHUB_ACTOR
password $GITHUB_TOKEN
EOF
chmod 600 $HOME/.netrc
git config --global user.email "$GITHUB_ACTOR@users.noreply.github.com"
git config --global user.name "$GITHUB_ACTOR"
git remote add upstream https://github.com/matomo-org/matomo.git
git push origin --delete translationupdates || true
git branch -D translationupdates || true
git fetch upstream 4.x-dev
git checkout -f upstream/4.x-dev
git branch translationupdates
git checkout -f translationupdates
- name: Checkout submodules
run: git submodule update --init --force
- name: Install Dependencies
run: composer install --prefer-dist
- name: Initialize Matomo
run: |
cp ./tests/travis/config.ini.travis.php ./config/config.ini.php
./console development:enable
- name: Sync translations
run: ./console translations:update --username ${{ secrets.TransifexUsername }} --password ${{ secrets.TransifexPassword }} --force --no-interaction
- name: Check for changes
id: changes
run: |
git add lang/
git add "*.json"
IFS=$'\n'
changes=( $(git diff --numstat HEAD | grep -E '([0-9]+)\s+([0-9]+)\s+[a-zA-Z\/]*lang\/([a-z]{2,3}(-[a-z]{2,3})?)\.json' ) )
unset IFS
# abort here if no change available
if [[ ${#changes[@]} -eq 0 ]]
then
exit 0
fi
declare -i totaladditions=0
declare -A additionsByLang
for (( i=0; i < ${#changes[@]}; i++ )); do
line=( ${changes[$i]} )
additions=${line[0]}
if [[ ${line[0]} = "0" ]]
then
continue;
fi
file=${line[2]}
lang=$( echo ${line[2]} | grep -oE '([a-z]{2,3}(-[a-z]{2,3})?)\.json' | cut -d'.' -f 1 )
totaladditions=$(( totaladditions + additions ))
additionsByLang[$lang]=$(( additionsByLang[$lang] + additions ))
done
title="Updated $totaladditions strings in ${#additionsByLang[@]} languages (${!additionsByLang[@]})"
languageInfo=( $( ./console translations:languageinfo | tr " " "_" ) )
for i in ${!additionsByLang[@]}; do
for j in ${languageInfo[@]}; do
if [[ "$j" == "$i|"* ]];
then
IFS=$'\n'
info=( $( echo "$j" | tr "|" "\n" ) )
unset IFS
break
fi
done
name=$( echo ${info[1]} | tr "_" " " )
message="$message- Updated $name (${additionsByLang[$i]} changes / ${info[2]} translated)\n"
done
message="$message\n\nHelp us translate Matomo in your language!\nSignup at https://www.transifex.com/matomo/matomo/\nIf you have any questions, get in touch with us at translations@matomo.org"
echo $title
echo $message
echo ::set-output name=title::$title
echo ::set-output name=message::$message
shell: bash
- name: Push changes
run: |
git commit -m "language update"
git push --set-upstream origin translationupdates
- name: Create PR
run: |
curl \
--request POST \
--header 'authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' \
--header 'content-type: application/json' \
--data '{
"title":"[automatic translation update] ${{ steps.changes.outputs.title }}",
"body":"${{ steps.changes.outputs.message }}",
"head":"translationupdates",
"base":"4.x-dev"
}' \
--url https://api.github.com/repos/${GITHUB_REPOSITORY}/pulls
shell: bash
if: steps.changes.outputs.title
|