From f4db02521df440cf8b0a22f3bdbd72e35f6939b8 Mon Sep 17 00:00:00 2001 From: Amine Louveau Date: Wed, 14 Sep 2022 10:32:00 +0000 Subject: [PATCH] drone-sign (#57) ## 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: aminecmi Reviewed-on: https://gitea.amine-louveau.fr/Louvorg/ReaderForSelfoss-multiplatform/pulls/57 --- .drone.yml | 104 +++++++++++++++++++++++++++++++++++++++++++-- build.sh | 4 +- publish-version.sh | 12 ++++-- version.sh | 17 +++++--- 4 files changed, 120 insertions(+), 17 deletions(-) diff --git a/.drone.yml b/.drone.yml index b401477..2703761 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,21 +1,117 @@ kind: pipeline type: docker -name: android +name: test steps: - - name: code-analysis + - name: AnylyseBuildTest image: mingc/android-build-box:latest failure: ignore commands: - - ls -la + - echo "---------------------------------------------------------" + - echo "Analysing..." - ./gradlew sonarqube -Dsonar.projectKey=RFS2 -Dsonar.host.url=$SONAR_HOST_URL -Dsonar.login=$SONAR_LOGIN -PignoreGitVersion=true -P appLoginUrl="\"URL\"" -P appLoginUsername="\"LOGIN\"" -P appLoginPassword="\"PASS\"" + - echo "---------------------------------------------------------" + - echo "Building..." + - ./gradlew :androidApp:build -PignoreGitVersion=true -P appLoginUrl="\"URL\"" -P appLoginUsername="\"LOGIN\"" -P appLoginPassword="\"PASS\"" -P pushCache=false + - echo "---------------------------------------------------------" + - echo "Testing..." + - echo "---------------------------------------------------------" 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: - - ./gradlew :androidApp:build -PignoreGitVersion=true -P appLoginUrl="\"URL\"" -P appLoginUsername="\"LOGIN\"" -P appLoginPassword="\"PASS\"" -P pushCache=false \ No newline at end of file + - echo "Generate APK" + - ./gradlew :androidApp:assembleGithubConfigRelease -PignoreGitVersion=true -P appLoginUrl="\"URL\"" -P appLoginUsername="\"LOGIN\"" -P appLoginPassword="\"PASS\"" -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 \ No newline at end of file diff --git a/build.sh b/build.sh index a8bcc27..c68baad 100755 --- a/build.sh +++ b/build.sh @@ -21,11 +21,11 @@ VERSION="${INITIAL_VERSION}${TODAYS_VERSION}" PARAMS_EXCEPT_PUBLISH=$(echo $1 | sed 's/\-\-publish//') -./version.sh ${VERSION} ${PARAMS_EXCEPT_PUBLISH} +./version.sh ${VERSION} ${PARAMS_EXCEPT_PUBLISH} $@ if [[ "$@" == *'--publish'* ]] then - ./publish-version.sh ${VERSION} + ./publish-version.sh ${VERSION} $@ else echo "Did not publish. If you wanted to do so, call the script with \"--publish\" or \"--publish-local\"." fi diff --git a/publish-version.sh b/publish-version.sh index 4d4c5b9..38ed8a6 100755 --- a/publish-version.sh +++ b/publish-version.sh @@ -5,7 +5,11 @@ rm -f version.txt printf "versionName=$1-github\nversionCode=$1" >> version.txt -# You'll need to change server as your server and define a VERSION_PATH. -scp version.txt server:$VERSION_PATH - -rm version.txt +if [[ "$@" == *'--from-ci'* ]] +then + echo "File created. HANDLE IN CI" +else + # You'll need to change server as your server and define a VERSION_PATH. + scp version.txt server:$VERSION_PATH + rm version.txt +fi diff --git a/version.sh b/version.sh index 3bb4033..afb679a 100755 --- a/version.sh +++ b/version.sh @@ -1,11 +1,14 @@ #!/bin/bash -# You can pass --force as first parameter to force push and tag creation. -echo "Creating tag $@" +echo "Creating tag $1" -TAG="v$@" -git tag ${TAG} +TAG="v$1" +git tag -a ${TAG} -m ${TAG} -echo "Pushing tag" - -git push origin ${TAG} +if [[ "$@" == *'--from-ci'* ]] +then + echo "Tag created. HANDLE IN CI" +else + echo "Pushing tag" + git push origin ${TAG} +fi