Auto-Test for messages.po
authorPhilipp <admin@philipp.info>
Sun, 11 Apr 2021 12:22:44 +0000 (14:22 +0200)
committerPhilipp <admin@philipp.info>
Sun, 11 Apr 2021 16:16:36 +0000 (18:16 +0200)
.github/workflows/transifex.yml [new file with mode: 0644]

diff --git a/.github/workflows/transifex.yml b/.github/workflows/transifex.yml
new file mode 100644 (file)
index 0000000..07ddddc
--- /dev/null
@@ -0,0 +1,47 @@
+name: Transifex
+on: [pull_request]
+
+jobs:
+  messages:
+    name: Check messages.po changes
+    runs-on: ubuntu-latest
+    steps:
+      - name: Install gettext
+        run: sudo apt-get install gettext
+
+      - name: Checkout Friendica Base
+        uses: actions/checkout@v2
+        with:
+          repository: 'friendica/friendica'
+          ref: ${{ github.base_ref }}
+
+      - name: Checkout current Friendica Addons
+        uses: actions/checkout@v2
+        with:
+          path: 'addons'
+
+      - name: Get changed files
+        id: changes
+        uses: jitterbit/get-changed-files@v1
+
+      - name: Run Xgettext for each changed addon
+        run: |
+          find_result="$(${{ steps.changes.outputs.all }} | cut -d "/" -f1 | uniq)"
+          for addon in $find_result
+          do
+            ./bin/run_xgettext.sh --addon $addon
+          done
+
+      - name: Check if messages.po needs an update
+        run: |
+          echo "::group::Check messages.po"
+          # Skip all lines of the git diff starting with "@@" or comments or starting "POT-Creation-Date"
+          cd addons/
+          if [[ $(git diff -U0 "**/messages.po" | awk '!/index|diff|\-\-\-|\+\+\+|@@|\-"POT-Creation-Date|\+"POT-Creation-Date|\+#|\-#/{print }' | wc -l) > 0 ]]; then
+            echo "::error file=messages.po::messages.po is out of date"
+            exit 1
+          else
+            echo "Nothing to update"
+          fi
+          echo "::endgroup::"
+        shell: bash