From c79feb77e7a19171a3d007c378e1b0d1ddc65b9a Mon Sep 17 00:00:00 2001 From: evermind Date: Sun, 10 Mar 2024 09:13:04 +0100 Subject: [PATCH] BraveNewPipe: refactor the data.json creation script to work with several branches As for now we use separated release data.json. One for brave and braveConscrypt flavor and one for braveKitkat --- .../scripts/brave-new-pipe-releast-actions.sh | 60 ++++++++++++------- 1 file changed, 38 insertions(+), 22 deletions(-) diff --git a/.github/scripts/brave-new-pipe-releast-actions.sh b/.github/scripts/brave-new-pipe-releast-actions.sh index eb54e76218..dbe9293e9a 100755 --- a/.github/scripts/brave-new-pipe-releast-actions.sh +++ b/.github/scripts/brave-new-pipe-releast-actions.sh @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# this script updates the json file with new version that BraveNewPipe is fetching regulary set -e @@ -19,7 +20,6 @@ APK_FILE=$2 BNP_R_MGR_REPO="bnp-r-mgr" GITHUB_LOGIN="bravenewpipe" RELEASE_BODY="Apk available at bravenewpipe/NewPipe@${TAG}](https://github.com/bravenewpipe/NewPipe/releases/tag/${TAG})." -GIT_BRANCH="master" PRERELEASE="false" if [[ "$TAG" == "latest" ]]; then @@ -32,16 +32,17 @@ if [[ "$GITHUB_REPOSITORY" != "bravenewpipe/NewPipe" ]]; then fi create_tagged_release() { - REPO=$1 - COMMIT_MSG=$2 - pushd /tmp/${REPO}/ + local L_REPO=$1 + local L_BRANCH=$2 + local L_COMMIT_MSG=$3 + pushd /tmp/${L_REPO}/ # Set the local git identity git config user.email "${GITHUB_LOGIN}@users.noreply.github.com" git config user.name "$GITHUB_LOGIN" # Obtain the release ID for the previous release of $TAG (if present) - local previous_release_id=$(curl --user ${GITHUB_LOGIN}:${GITHUB_SUPER_TOKEN} --request GET --silent https://api.github.com/repos/${GITHUB_LOGIN}/${REPO}/releases/tags/${TAG} | jq '.id') + local previous_release_id=$(curl --user ${GITHUB_LOGIN}:${GITHUB_SUPER_TOKEN} --request GET --silent https://api.github.com/repos/${GITHUB_LOGIN}/${L_REPO}/releases/tags/${TAG} | jq '.id') # Delete the previous release (if present) if [[ -n "$previous_release_id" ]]; then @@ -50,7 +51,7 @@ create_tagged_release() { --user ${GITHUB_LOGIN}:${GITHUB_SUPER_TOKEN} \ --request DELETE \ --silent \ - https://api.github.com/repos/${GITHUB_LOGIN}/${REPO}/releases/${previous_release_id} + https://api.github.com/repos/${GITHUB_LOGIN}/${L_REPO}/releases/${previous_release_id} fi # Delete previous identical tags, if present @@ -59,8 +60,8 @@ create_tagged_release() { # Add all the changed files and push the changes upstream git add -f . - git commit -m "${COMMIT_MSG}" || true - git push -f origin ${GIT_BRANCH}:${GIT_BRANCH} + git commit -m "${L_COMMIT_MSG}" || true + git push -f origin ${L_BRANCH}:${L_BRANCH} git tag $TAG git push origin $TAG @@ -70,7 +71,7 @@ create_tagged_release() { # evermind -- we don't want any release entries there --request POST \ # evermind -- we don't want any release entries there --silent \ # evermind -- we don't want any release entries there --data @- \ -# evermind -- we don't want any release entries there https://api.github.com/repos/${GITHUB_LOGIN}/${REPO}/releases < $TEMPFILE + mv $TEMPFILE $JSON_FILE + + create_tagged_release "$BNP_R_MGR_REPO" "$L_BRANCH" "\"version\": \"$VERSION_NAME\"" +} + BUILD_TOOLS_VERSION="${BUILD_TOOLS_VERSION:-29.0.3}" AAPT=$ANDROID_HOME/build-tools/$BUILD_TOOLS_VERSION/aapt URL="https://github.com/bravenewpipe/NewPipe/releases/download/${TAG}/BraveNewPipe_${TAG}.apk" URL_CONSCRYPT="https://github.com/bravenewpipe/NewPipe/releases/download/${TAG}/BraveNewPipe_conscrypt_${TAG}.apk" +URL_KITKAT="https://github.com/bravenewpipe/NewPipe/releases/download/${TAG}/BraveNewPipe_kitkat${TAG}.apk" VERSION_NAME=${TAG/v/} VERSION_CODE="$($AAPT d badging $APK_FILE | grep -Po "(?<=\sversionCode=')([0-9.-]+)")" TEMPFILE="$(mktemp -p /tmp -t sdflhXXXXXXXXX)" JSON_FILE=/tmp/${BNP_R_MGR_REPO}/api/data.json -# checkout json release file repo -rm -rf "/tmp/${BNP_R_MGR_REPO}" -git clone --branch "${GIT_BRANCH}" "https://bravenewpipe:${GITHUB_SUPER_TOKEN}@github.com/bravenewpipe/${BNP_R_MGR_REPO}.git" /tmp/${BNP_R_MGR_REPO} -# update version{code,name} and download url -cat $JSON_FILE \ - | jq '.flavors.github.stable.version_code = '${VERSION_CODE}'' \ - | jq '.flavors.github.stable.version = "'${VERSION_NAME}'"' \ - | jq '.flavors.github.stable.apk = "'${URL}'"' \ - | jq '( .flavors.github.stable.alternative_apks[] | select(.alternative == "conscrypt") ).url |= "'${URL_CONSCRYPT}'"' \ - > $TEMPFILE -mv $TEMPFILE $JSON_FILE - -create_tagged_release "$BNP_R_MGR_REPO" "\"version\": \"$VERSION_NAME\"" +# We have two different json files for now: +# The first is used within the flavors brave and braveConscrypt +# and the second is used in braveKitkat. The json files +# are stored in the same repo but in different branches. +# We call kitkat stuff first as each call tags and delete same exising +# tags before and we want the master branch to have the actual tag. +create_json_file_and_create_tagged_release "kitkat" "$URL_KITKAT" "$URL_KITKAT" +create_json_file_and_create_tagged_release "master" "$URL" "$URL_CONSCRYPT"