754d526b49
## Types of changes - [ ] I have read the **CONTRIBUTING** document. - [ ] My code follows the code style of this project. - [ ] I have updated the documentation accordingly. - [ ] I have added tests to cover my changes. - [ ] All new and existing tests passed. - [ ] This is **NOT** translation related. This closes issue #XXX This is implements feature #YYY This finishes chore #ZZZ Co-authored-by: davidoskky <davidoskky@yahoo.it> Co-authored-by: aminecmi <aminecmi@gmail.com> Reviewed-on: https://gitea.amine-louveau.fr/Louvorg/ReaderForSelfoss-multiplatform/pulls/150
166 lines
5.9 KiB
YAML
166 lines
5.9 KiB
YAML
kind: pipeline
|
|
type: docker
|
|
name: test
|
|
|
|
steps:
|
|
- name: Lint
|
|
failure: ignore
|
|
image: mingc/android-build-box:latest
|
|
commands:
|
|
- echo "---------------------------------------------------------"
|
|
- echo "Install linters..."
|
|
- curl -sSLO https://github.com/pinterest/ktlint/releases/download/1.0.0/ktlint && chmod a+x ktlint && mv ktlint /usr/local/bin/
|
|
- curl -sSLO https://github.com/detekt/detekt/releases/download/v1.23.1/detekt-cli-1.23.1.zip && unzip detekt-cli-1.23.1.zip
|
|
- echo "---------------------------------------------------------"
|
|
- echo "Linting..."
|
|
- ktlint || true
|
|
- echo "---------------------------------------------------------"
|
|
- echo "Detecting..."
|
|
- ./detekt-cli-1.23.1/bin/detekt-cli --all-rules || true
|
|
- echo "---------------------------------------------------------"
|
|
command_timeout: 1m
|
|
- name: BuildAndTest
|
|
image: mingc/android-build-box:latest
|
|
commands:
|
|
- echo "---------------------------------------------------------"
|
|
- echo "Configure gradle..."
|
|
- mkdir -p ~/.gradle && echo "org.gradle.daemon=false\nignoreGitVersion=true\nsystemProp.org.gradle.internal.http.connectionTimeout=180000\nsystemProp.org.gradle.internal.http.socketTimeout=180000" >> ~/.gradle/gradle.properties
|
|
- echo "---------------------------------------------------------"
|
|
- echo "Configure java..."
|
|
- . ~/.bash_profile
|
|
- jenv global 17.0
|
|
- java --version
|
|
- date
|
|
- echo "---------------------------------------------------------"
|
|
- echo "Building and testing..."
|
|
- ./gradlew build
|
|
- echo "---------------------------------------------------------"
|
|
trigger:
|
|
event:
|
|
- push
|
|
- pull_request
|
|
|
|
---
|
|
kind: pipeline
|
|
type: docker
|
|
name: Publish
|
|
|
|
steps:
|
|
- name: createTagAndChangelog
|
|
image: ubuntu:latest
|
|
commands:
|
|
- apt-get update && apt-get install -y git
|
|
- git fetch --tags -p
|
|
- PREV=$(git describe --tags --abbrev=0)
|
|
- ./build.sh --publish --from-ci
|
|
- git remote add pushing https://$GITEA_USR:$GITEA_PASS@gitea.amine-louveau.fr/Louvorg/ReaderForSelfoss-multiplatform.git
|
|
- VER=$(git describe --tags --abbrev=0)
|
|
- CHANGELOG=$(git log $PREV..HEAD --pretty="- %s")
|
|
- echo "**$VER**\n\n$CHANGELOG\n\n--------------------------------------------------------------------\n\n$(cat CHANGELOG.md)" > CHANGELOG.md
|
|
- git add CHANGELOG.md
|
|
- git commit -m "Changelog for $VER [CI SKIP]"
|
|
- git push pushing master
|
|
- git push pushing --tags
|
|
environment:
|
|
TZ: Europe/Paris
|
|
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 "Fetch tags..."
|
|
- git fetch --tags
|
|
- echo "---------------------------------------------------------"
|
|
- echo "Configure gradle..."
|
|
- mkdir -p ~/.gradle && echo "org.gradle.daemon=false\nignoreGitVersion=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
|
|
- 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:
|
|
TZ: Europe/Paris
|
|
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
|
|
|
|
- name: notify
|
|
image: drillster/drone-email
|
|
failure: ignore
|
|
settings:
|
|
host:
|
|
from_secret: smtpHOST
|
|
port:
|
|
from_secret: smtpPORT
|
|
username:
|
|
from_secret: smtpUSERNAME
|
|
password:
|
|
from_secret: smtpPASSWORD
|
|
from:
|
|
from_secret: smtpFROM
|
|
subject: Mapping file
|
|
recipients:
|
|
from_secret: smtpTO
|
|
recipients_only: true
|
|
skip_verify: true
|
|
attachment: androidApp/build/outputs/mapping/githubConfigRelease/mapping.txt
|
|
trigger:
|
|
event:
|
|
- tag |