Actions & PR Template verbessern (#223)
Some checks failed
Push Pipeline / test (push) Successful in 47s
Push Pipeline / update_version (push) Failing after 31s
Push Pipeline / generate_licenses (push) Failing after 36s
Push Pipeline / generate_localizations (push) Successful in 28s
Push Pipeline / sort_arb_files (push) Successful in 37s
Push Pipeline / format (push) Has been skipped
Push Pipeline / build (push) Successful in 5m32s
Some checks failed
Push Pipeline / test (push) Successful in 47s
Push Pipeline / update_version (push) Failing after 31s
Push Pipeline / generate_licenses (push) Failing after 36s
Push Pipeline / generate_localizations (push) Successful in 28s
Push Pipeline / sort_arb_files (push) Successful in 37s
Push Pipeline / format (push) Has been skipped
Push Pipeline / build (push) Successful in 5m32s
### Zugehörige Issue(s) Closes #222 ### Beschreibung Die Push & PR-Pipelines wurden um Überprüfungen und Formatierung für die Lokalisierung erweitert. Außerdem wurde eine PR-Checkliste zum PR-Template hinzugefügt. ### Änderungen - Template um `PR-Checklist` ergänzt (siehe Diff, gerne Ideen für mehr Punkte) - PR-Pipeline überprüft jetzt ob `untranslated_messages.json` leer (also `{}`) ist. Wenn nicht, schlägt sie fehl - In der Push-Pipeline werden jetzt die `.arb`-Files sortiert - In der Push-Pipeline werden jetzt die lokalisierungen generiert - Renovate Workflow hinzugefügt, welcher jede Woche die Dependencies überprüft (siehe [diese Test-PR](#244)) ### Zusätzliche Anmerkungen Ich wollt eigentlich auch einen Job zum generieren der DB-Files einbauen. Das hat jedoch nicht geklappt (siehe [hier](https://git.yannick-weigert.de/liquid-development/game-tracker/actions/runs/1013/jobs/3) oder [hier](https://git.yannick-weigert.de/liquid-development/game-tracker/actions/runs/1014/jobs/3)), weil der jedes mal mehr als 10 Minuten gedauert hat und dann getimeoutet ist  Co-authored-by: Gitea Actions [bot] <actions@yannick-weigert.de> Reviewed-on: #223 Co-authored-by: Felix Kirchner <felix.kirchner.fk@gmail.com> Co-committed-by: Felix Kirchner <felix.kirchner.fk@gmail.com>
This commit was merged in pull request #223.
This commit is contained in:
@@ -34,6 +34,23 @@ body:
|
||||
- Modul X für bessere Leistung refactored
|
||||
- Dependencies aktualisiert
|
||||
|
||||
- type: checkboxes
|
||||
id: checklist
|
||||
attributes:
|
||||
label: PR-Checkliste
|
||||
description: Stelle sicher, dass alle Punkte erfüllt sind, bevor du den Pull Request zum Review freigibst.
|
||||
options:
|
||||
- label: Ich habe für Navigationen den AdaptiveNavigator` verwendet
|
||||
required: false
|
||||
- label: Ich habe alle Strings lokalisiert (de/en)
|
||||
required: false
|
||||
- label: Ich habe die Testdaten aktualisiert oder erweitert
|
||||
required: false
|
||||
- label: Ich habe das JSON-Schema angepasst
|
||||
required: false
|
||||
- label: Ich habe Tests für neue Datenbank/DAO-Funktionen hinzugefügt
|
||||
required: false
|
||||
|
||||
- type: textarea
|
||||
id: additional_notes
|
||||
attributes:
|
||||
|
||||
@@ -55,3 +55,45 @@ jobs:
|
||||
|
||||
- name: Run tests
|
||||
run: flutter test
|
||||
|
||||
localizations:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
# Required for Flutter action
|
||||
- name: Install jq
|
||||
run: |
|
||||
apt-get update
|
||||
apt-get install -y jq
|
||||
|
||||
- name: Set up Flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
channel: stable
|
||||
flutter-version: 3.41.0
|
||||
|
||||
- name: Get dependencies
|
||||
run: |
|
||||
git config --global --add safe.directory /opt/hostedtoolcache/flutter/stable-3.41.0-x64
|
||||
flutter pub get
|
||||
|
||||
- name: Check for untranslated messages
|
||||
run: |
|
||||
flutter gen-l10n --no-use-deferred-loading
|
||||
|
||||
UNTRANSLATED_FILE=lib/l10n/untranslated_messages.json
|
||||
if [ ! -f "$UNTRANSLATED_FILE" ]; then
|
||||
echo "Expected $UNTRANSLATED_FILE to be generated, but it does not exist."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
CONTENT=$(tr -d '[:space:]' < "$UNTRANSLATED_FILE")
|
||||
if [ "$CONTENT" != "{}" ]; then
|
||||
echo "Found untranslated messages:"
|
||||
cat "$UNTRANSLATED_FILE"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "All messages translated."
|
||||
@@ -71,13 +71,16 @@ jobs:
|
||||
update_version:
|
||||
runs-on: ubuntu-latest
|
||||
if: gitea.ref == 'refs/heads/development'
|
||||
env:
|
||||
GITEA_TOKEN: ${{ secrets.BOT_TOKEN }}
|
||||
BRANCH_NAME: ${{ gitea.ref_name }}
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
token: ${{ secrets.BOT_TOKEN }}
|
||||
ref: ${{ gitea.ref_name }}
|
||||
token: ${GITEA_TOKEN}
|
||||
ref: $BRANCH_NAME
|
||||
|
||||
- name: Increment version number
|
||||
uses: stikkyapp/update-pubspec-version@v2
|
||||
@@ -92,21 +95,20 @@ jobs:
|
||||
git config --global user.name "Gitea Actions [bot]"
|
||||
git config --global user.email "actions@yannick-weigert.de"
|
||||
git config pull.rebase false
|
||||
git pull origin ${{ gitea.ref_name }}
|
||||
git pull origin "$BRANCH_NAME"
|
||||
git add pubspec.yaml
|
||||
git commit -m "Updated version number [skip ci]"
|
||||
git push origin HEAD:${{ gitea.ref_name }}
|
||||
git push origin HEAD:$BRANCH_NAME
|
||||
|
||||
generate_licenses:
|
||||
runs-on: ubuntu-latest
|
||||
needs: update_version
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
token: ${{ secrets.BOT_TOKEN }}
|
||||
ref: ${{ gitea.ref_name }}
|
||||
token: $GITEA_TOKEN
|
||||
ref: $BRANCH_NAME
|
||||
|
||||
# Required for Flutter action
|
||||
- name: Install jq
|
||||
@@ -129,24 +131,139 @@ jobs:
|
||||
run: flutter pub run dart_pubspec_licenses:generate -o lib/presentation/views/main_menu/settings_view/licenses/oss_licenses.dart
|
||||
|
||||
- name: Commit license update
|
||||
env:
|
||||
GITEA_TOKEN: ${{ secrets.BOT_TOKEN }}
|
||||
run: |
|
||||
if [ -n "$(git status --porcelain lib test)" ]; then
|
||||
git config --global user.name "Gitea Actions [bot]"
|
||||
git config --global user.email "actions@yannick-weigert.de"
|
||||
git config pull.rebase false
|
||||
git pull origin ${{ gitea.ref_name }}
|
||||
git pull origin "$BRANCH_NAME"
|
||||
git add lib test
|
||||
git commit -m "Updated licenses [skip ci]"
|
||||
git push origin HEAD:${{ gitea.ref_name }}
|
||||
git push origin HEAD:$BRANCH_NAME
|
||||
else
|
||||
echo "No changes to commit"
|
||||
fi
|
||||
|
||||
generate_localizations:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
# Required for Flutter action
|
||||
- name: Install jq
|
||||
run: |
|
||||
apt-get update
|
||||
apt-get install -y jq
|
||||
|
||||
- name: Set up Flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
channel: stable
|
||||
flutter-version: 3.41.0
|
||||
|
||||
- name: Get dependencies
|
||||
run: |
|
||||
git config --global --add safe.directory /opt/hostedtoolcache/flutter/stable-3.41.0-x64
|
||||
flutter pub get
|
||||
|
||||
- name: Generate localizations
|
||||
run: flutter gen-l10n --no-use-deferred-loading
|
||||
|
||||
- name: Check for changes
|
||||
id: check_changes
|
||||
run: |
|
||||
if [ -n "$(git status --porcelain lib/l10n)" ]; then
|
||||
echo "has_changes=true" >> "$GITHUB_OUTPUT"
|
||||
else
|
||||
echo "has_changes=false" >> "$GITHUB_OUTPUT"
|
||||
fi
|
||||
|
||||
- name: Commit generated localizations
|
||||
if: steps.check_changes.outputs.has_changes == 'true'
|
||||
env:
|
||||
GITEA_TOKEN: ${{ secrets.BOT_TOKEN }}
|
||||
BRANCH_NAME: ${{ gitea.ref_name }}
|
||||
run: |
|
||||
git fetch origin "$BRANCH_NAME"
|
||||
git checkout "$BRANCH_NAME"
|
||||
|
||||
if [ -n "$(git status --porcelain lib test)" ]; then
|
||||
git config --global user.name "Gitea Actions [bot]"
|
||||
git config --global user.email "actions@yannick-weigert.de"
|
||||
git config pull.rebase false
|
||||
git pull origin "$BRANCH_NAME"
|
||||
git add lib/l10n
|
||||
git commit -m "Generated localizations [skip ci]"
|
||||
git push origin "HEAD:$BRANCH_NAME"
|
||||
else
|
||||
echo "No changes to commit"
|
||||
fi
|
||||
|
||||
sort_arb_files:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
# Required for Flutter action
|
||||
- name: Install jq
|
||||
run: |
|
||||
apt-get update
|
||||
apt-get install -y jq
|
||||
|
||||
- name: Set up Flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
channel: stable
|
||||
flutter-version: 3.41.0
|
||||
|
||||
- name: Get dependencies
|
||||
run: |
|
||||
git config --global --add safe.directory /opt/hostedtoolcache/flutter/stable-3.41.0-x64
|
||||
flutter pub get
|
||||
|
||||
- name: Sort .arb-Files
|
||||
run: |
|
||||
shopt -s nullglob
|
||||
for file in lib/l10n/arb/app_*.arb; do
|
||||
echo "Sorting $file"
|
||||
dart run arb_utils sort "$file"
|
||||
done
|
||||
|
||||
- name: Check for changes
|
||||
id: check_changes
|
||||
run: |
|
||||
if [ -n "$(git status --porcelain lib/l10n/arb)" ]; then
|
||||
echo "has_changes=true" >> "$GITHUB_OUTPUT"
|
||||
else
|
||||
echo "has_changes=false" >> "$GITHUB_OUTPUT"
|
||||
fi
|
||||
|
||||
- name: Commit sorted .arb-Files
|
||||
if: steps.check_changes.outputs.has_changes == 'true'
|
||||
env:
|
||||
GITEA_TOKEN: ${{ secrets.BOT_TOKEN }}
|
||||
BRANCH_NAME: ${{ gitea.ref_name }}
|
||||
run: |
|
||||
git fetch origin "$BRANCH_NAME"
|
||||
git checkout "$BRANCH_NAME"
|
||||
|
||||
if [ -n "$(git status --porcelain lib/l10n/arb)" ]; then
|
||||
git config --global user.name "Gitea Actions [bot]"
|
||||
git config --global user.email "actions@yannick-weigert.de"
|
||||
git config pull.rebase false
|
||||
git pull origin "$BRANCH_NAME"
|
||||
git add lib/l10n/arb
|
||||
git commit -m "Sort .arb files [skip ci]"
|
||||
git push origin "HEAD:$BRANCH_NAME"
|
||||
else
|
||||
echo "No changes to commit"
|
||||
fi
|
||||
|
||||
format:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [update_version, generate_licenses]
|
||||
needs: [update_version, generate_licenses, generate_localizations, sort_arb_files]
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
@@ -177,9 +294,10 @@ jobs:
|
||||
if: steps.check_format.outcome == 'failure'
|
||||
env:
|
||||
GITEA_TOKEN: ${{ secrets.BOT_TOKEN }}
|
||||
BRANCH_NAME: ${{ gitea.ref_name }}
|
||||
run: |
|
||||
git fetch origin ${{ gitea.ref_name }}
|
||||
git checkout ${{ gitea.ref_name }}
|
||||
git fetch origin "$BRANCH_NAME"
|
||||
git checkout "$BRANCH_NAME"
|
||||
|
||||
dart fix --apply lib
|
||||
dart fix --apply test
|
||||
@@ -188,10 +306,10 @@ jobs:
|
||||
git config --global user.name "Gitea Actions [bot]"
|
||||
git config --global user.email "actions@yannick-weigert.de"
|
||||
git config pull.rebase false
|
||||
git pull origin ${{ gitea.ref_name }}
|
||||
git pull origin "$BRANCH_NAME"
|
||||
git add lib test
|
||||
git commit -m "Auto-format code [skip ci]"
|
||||
git push origin HEAD:${{ gitea.ref_name }}
|
||||
git push origin HEAD:$BRANCH_NAME
|
||||
else
|
||||
echo "No changes to commit"
|
||||
fi
|
||||
|
||||
35
.gitea/workflows/renovate.yaml
Normal file
35
.gitea/workflows/renovate.yaml
Normal file
@@ -0,0 +1,35 @@
|
||||
name: Renovate
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 12 * * 0'
|
||||
push:
|
||||
branches:
|
||||
- setup/222-actions-&-pr-template-verbessern
|
||||
|
||||
jobs:
|
||||
renovate:
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: node:20-bookworm
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Upgrade git
|
||||
run: |
|
||||
apt-get update
|
||||
apt-get install -y git
|
||||
git --version
|
||||
|
||||
- name: Run Renovate
|
||||
env:
|
||||
RENOVATE_TOKEN: ${{ secrets.BOT_TOKEN }}
|
||||
RENOVATE_PLATFORM: gitea
|
||||
RENOVATE_ENDPOINT: https://git.yannick-weigert.de
|
||||
RENOVATE_REPOSITORIES: liquid-development/game-tracker
|
||||
RENOVATE_GIT_AUTHOR: "Gitea Actions <actions@yannick-weigert.de>"
|
||||
RENOVATE_CONFIG_FILE: renovate.json
|
||||
LOG_LEVEL: info
|
||||
run: |
|
||||
npm install -g renovate
|
||||
renovate
|
||||
Reference in New Issue
Block a user