kind: pipeline
type: docker
name: test

steps:
  - name: AnylyseBuildTest
    image: mingc/android-build-box:latest
    commands:
      - echo "---------------------------------------------------------"
      - echo "Configure gradle..."
      - mkdir -p ~/.gradle && echo "org.gradle.daemon=false\nignoreGitVersion=true\npushCache=false\nsystemProp.org.gradle.internal.http.connectionTimeout=180000\nsystemProp.org.gradle.internal.http.socketTimeout=180000" >> ~/.gradle/gradle.properties
      - echo "---------------------------------------------------------"
      - echo "Analysing..."
      - ./gradlew sonarqube -Dsonar.projectKey=RFS2 -Dsonar.host.url=$SONAR_HOST_URL -Dsonar.login=$SONAR_LOGIN
      - echo "---------------------------------------------------------"
      - echo "Building..."
      - ./gradlew build
      - echo "---------------------------------------------------------"
      - echo "Testing..."
      - echo "---------------------------------------------------------"
      - ./gradlew test
    environment:
      SONAR_HOST_URL:
        from_secret: sonarScannerHostUrl
      SONAR_LOGIN:
        from_secret: sonarScannerLogin
trigger:
  event:
    - push
    - pull_request

---
kind: pipeline
type: docker
name: Publish

steps:
  - name: createTag
    image: ubuntu:latest
    commands:
      - apt-get update && apt-get install -y git
      - ./build.sh --publish --from-ci
      - git remote add pushing https://$GITEA_USR:$GITEA_PASS@gitea.amine-louveau.fr/Louvorg/ReaderForSelfoss-multiplatform.git
      - git push pushing --tags
    environment:
      GITEA_USR:
        from_secret: giteaUsr
      GITEA_PASS:
        from_secret: giteaPass

  - name: scpFiles
    image: appleboy/drone-scp
    settings:
      host: amine-louveau.fr
      username: ubuntu
      key:
        from_secret: privateKey
      port: 22
      target: /home/ubuntu/
      source: version.txt

  - name: deploy
    image: appleboy/drone-ssh
    settings:
      host: amine-louveau.fr
      user: ubuntu
      key:
        from_secret: privateKey
      command_timeout: 2m
      script:
        - cd /home/ubuntu
        - sudo rm -rf /var/www/amine/version.txt
        - sudo chown www-data:www-data ./version.txt
        - sudo mv version.txt /var/www/amine/

trigger:
  event:
    - promote
  target:
    - production

---
kind: pipeline
type: docker
name: Release

steps:
  - name: build
    image: mingc/android-build-box:latest
    commands:
      - echo "---------------------------------------------------------"
      - echo "Configure gradle..."
      - mkdir -p ~/.gradle && echo "org.gradle.daemon=false\nignoreGitVersion=true\npushCache=false\nsystemProp.org.gradle.internal.http.connectionTimeout=180000\nsystemProp.org.gradle.internal.http.socketTimeout=180000" >> ~/.gradle/gradle.properties
      - echo "---------------------------------------------------------"
      - echo "Generate APK"
      - ./gradlew :androidApp:assembleGithubConfigRelease  -P pushCache=false
      - echo "---------------------------------------------------------"
      - echo "Get Key"
      - wget https://amine-louveau.fr/key
      - echo "---------------------------------------------------------"
      - echo "Zipalign"
      - $ANDROID_HOME/build-tools/31.0.0/zipalign -f -v 4 androidApp/build/outputs/apk/githubConfig/release/androidApp-githubConfig-release-unsigned.apk androidApp/build/outputs/apk/githubConfig/release/android-prod-released-ziped.apk
      - echo "---------------------------------------------------------"
      - echo "Sign"
      - $ANDROID_HOME/build-tools/31.0.0/apksigner sign -v --out signed.apk --ks ./key --ks-key-alias $YOUR_KEY_ALIAS --ks-pass pass:$YOUR_KEYSTORE_PASSWORD --v1-signing-enabled true --v2-signing-enabled true androidApp/build/outputs/apk/githubConfig/release/android-prod-released-ziped.apk
      - echo "---------------------------------------------------------"
      - echo "Verify"
      - $ANDROID_HOME/build-tools/31.0.0/apksigner verify signed.apk
    environment:
      YOUR_KEYSTORE_PASSWORD:
        from_secret: keyPass
      YOUR_KEY_ALIAS:
        from_secret: keyAlias

  - name: gitea_release
    image: plugins/gitea-release
    settings:
      api_key:
        from_secret: giteaAPI
      base_url: https://gitea.amine-louveau.fr
      files: signed.apk
trigger:
  event:
    - tag