name: Check PR code
on:
  pull_request:
    branches:
      - master
      - chore-crowdin-ci

jobs:
  Lint:
    runs-on: ubuntu-latest
    steps:
      - name: Check out repository code
        uses: actions/checkout@v4
      - uses: actions/setup-java@v4
        with:
          distribution: 'temurin'
          java-version: '17'
          cache: gradle
      - name: Install klint
        run: curl -sSLO https://github.com/pinterest/ktlint/releases/download/1.5.0/ktlint && chmod a+x ktlint && mv ktlint /usr/local/bin/
      - name: Install detekt
        run: curl -sSLO https://github.com/detekt/detekt/releases/download/v1.23.7/detekt-cli-1.23.7.zip && unzip detekt-cli-1.23.7.zip
      - name: Linting...
        run: ktlint 'shared/**/*.kt' 'androidApp/**/*.kt' '!shared/build'
      - name: Detecting...
        run: ./detekt-cli-1.23.7/bin/detekt-cli -c detekt.yml --excludes '**/shared/build/**/*.kt'
  translations:
    runs-on: ubuntu-latest
    steps:
      - name: Check out repository code
        uses: actions/checkout@v4
      - name: upload translation sources
        uses: crowdin/github-action@v2
        with:
          config: './.gitea/workflows/assets/crowdin.yml'
          upload_sources: true
          upload_translations: false
          download_translations: false
          create_pull_request: false
          push_translations: false
        env:
          CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }}
          CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}
      - name: wait
        run: sleep 10s
      - name: download translations
        uses: crowdin/github-action@v2
        with:
          config: './.gitea/workflows/assets/crowdin.yml'
          upload_sources: false
          upload_translations: false
          download_translations: true
          create_pull_request: false
          push_translations: false
        env:
          CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }}
          CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}
      - name: Check for uncommitted changes
        id: check-changes
        uses: mskri/check-uncommitted-changes-action@v1.0.1
      - name: Commit Changes
        if: steps.check-changes.outputs.changes != ''
        run: |
          git config --global user.email aminecmi+giteadrone@pm.me
          git config --global user.name giteadrone
          git add ./androidApp/src/main/res/*
          git commit -m "translation: translation files"
      - name: Push changes
        if: steps.check-changes.outputs.changes != ''
        uses: appleboy/git-push-action@v1.0.0
        with:
          author_name: giteadrone
          author_email: aminecmi+giteadrone@pm.me
          remote: ${{ secrets.REMOTE_URL }}
          ssh_key: ${{ secrets.PRIVATE_KEY }}
          branch: ${{ github.head_ref || github.ref_name }}
  build:
    needs: Lint
    uses: ./.gitea/workflows/common_build.yml