GitNex-Android-App/.woodpecker/build.yml

53 lines
1.9 KiB
YAML

pipeline:
build:
image: alvrme/alpine-android:android-31-jdk11
commands:
- ./gradlew assembleFreeRelease
when:
path: [ app/**, build.gradle ]
sign:
image: alvrme/alpine-android:android-31-jdk11
environment:
OUTPUT: "signed.apk"
INSTANCE: "https://codeberg.org"
KS_FILE: "gitnex_ci_keystore.jks"
commands:
- >
KEYFILE=$(mktemp)
curl -X GET "${INSTANCE}/api/v1/repos/${KS_REPO}/contents/${KS_FILE}?token=${BOT_TOKEN}" -H "accept: application/json" | sed 's|"content":"|#|g' | cut -d '#' -f 2 | cut -d '"' -f 1 | base64 -d > ${KEYFILE}
apksigner sign -v --ks-pass pass:$KS_PASS --key-pass pass:$KEY_PASS --ks-key-alias GitNexBot --ks ${KEYFILE} --out signed.apk $(find . -name "*release*.apk")
secrets: [ BOT_TOKEN, KS_PASS, KEY_PASS, KS_REPO ]
when:
event: [ push, tag ]
branch: main
path: [ app/**, build.gradle ]
upload:
image: curlimages/curl:7.82.0
group: upload
environment:
WEBDAV_USERNAME: "GitNexBot"
PLUGIN_FILE: "signed.apk"
PLUGIN_DESTINATION: "https://cloud.swatian.com/remote.php/dav/files/GitNexBot/gitnex/builds/latest.apk"
commands:
- curl -T "$PLUGIN_FILE" -u "$WEBDAV_USERNAME":"$WEBDAV_PASSWORD" "$PLUGIN_DESTINATION"
secrets: [ WEBDAV_PASSWORD ]
when:
event: [ push, tag ]
branch: main
path: [ app/**, build.gradle ]
upload-release:
image: curlimages/curl:7.82.0
group: upload
environment:
WEBDAV_USERNAME: "GitNexBot"
PLUGIN_FILE: "signed.apk"
commands:
- "[[ $CI_COMMIT_TAG == *'-rc'* ]] && echo 'Upload blocked. Build seems to be a release candidate.' && exit 0"
- curl -T "$PLUGIN_FILE" -u "$WEBDAV_USERNAME":"$WEBDAV_PASSWORD" 'https://cloud.swatian.com/remote.php/dav/files/GitNexBot/gitnex/releases/'"$CI_COMMIT_TAG"'.apk'
secrets: [ WEBDAV_PASSWORD ]
when:
event: [ tag ]