Skip to content
Snippets Groups Projects
fdroidMergeRequest.sh 3.29 KiB
Newer Older
#!/usr/bin/env bash

# This script pull/clone a fdroiddata repository

set -x # Get a more verbose output for Jenkins

    echo "Usage:"
    echo "1: commit"
    echo "2: versionName"
    echo "3: versionCode"
    echo "4: private gitlab.com access token (optional)"
    echo "e.g. ./fdroidMergeRequest.sh e5d0d7d2e625e2455fce3d041dd563c45ab9d4a9 20190123 146 r19c djlhsdKH345456DDGfo7"
    exit
fi

commit=$1
versionName="$2"
versionCode=$3
ndkVersion=$4
gitlabToken=$5

if [ -d "fdroiddata" ]
then
    echo "fdroiddata repository exists"
    git -C fdroiddata checkout master
    git -C fdroiddata pull --rebase
else
    echo "fdroiddata repository does not exists"
    git clone git@gitlab.com:savoirfairelinux/fdroiddata.git
git -C fdroiddata remote add upstream git@gitlab.com:fdroid/fdroiddata.git
git -C fdroiddata fetch upstream || exit
git -C fdroiddata status
git -C fdroiddata checkout upstream/master
git -C fdroiddata config user.name "savoirfairelinux"
git -C fdroiddata config user.email mobile@savoirfairelinux.com

METADATA_FOLDER=fdroiddata/metadata

Sébastien Blin's avatar
Sébastien Blin committed
cp ${METADATA_FOLDER}/cx.ring.yml ${METADATA_FOLDER}/cx.ring.yml_

head -n -11 ${METADATA_FOLDER}/cx.ring.yml_ > ${METADATA_FOLDER}/cx.ring.yml

if [[ ${versionName} =~ ^[0-9]+$ ]]; then
   versionName="'${versionName}'"
fi

Sébastien Blin's avatar
Sébastien Blin committed
echo "  - versionName: ${versionName}
Sébastien Blin's avatar
Sébastien Blin committed
    versionCode: ${versionCode}
    commit: ${commit}
    timeout: 10800
    subdir: client-android/ring-android/app
    submodules: true
      - apt-get update || apt-get update
      - apt-get install -y -t testing swig
      - apt-get install -y -t stretch-backports-sloppy libarchive13
      - apt-get install -y -t stretch-backports cmake
Sébastien Blin's avatar
Sébastien Blin committed
    gradle:
Sébastien Blin's avatar
Sébastien Blin committed
      - noPush
Sébastien Blin's avatar
Sébastien Blin committed
    rm:
Sébastien Blin's avatar
Sébastien Blin committed
      - client-electron
      - client-gnome
      - client-ios
      - client-macosx
      - client-uwp
      - client-qt
      - plugins
Sébastien Blin's avatar
Sébastien Blin committed
      - docker
      - docs
      - lrc
      - packaging
      - scripts
    prebuild: \$ANDROID_HOME/tools/bin/sdkmanager 'platforms;android-30' 'build-tools;30.0.3'
Sébastien Blin's avatar
Sébastien Blin committed
    build:
Sébastien Blin's avatar
Sébastien Blin committed
      - cd ../..
      - export ANDROID_NDK_ROOT=\"\$ANDROID_NDK\"
      - export ANDROID_ABI=\"armeabi-v7a arm64-v8a x86_64\"
      - ./compile.sh --release --daemon
Sébastien Blin's avatar
Sébastien Blin committed
    ndk: ${ndkVersion}" >> ${METADATA_FOLDER}/cx.ring.yml


tail -n 12 ${METADATA_FOLDER}/cx.ring.yml_ | head -n -2 >> ${METADATA_FOLDER}/cx.ring.yml

Sébastien Blin's avatar
Sébastien Blin committed
echo "CurrentVersion: ${versionName}" >> ${METADATA_FOLDER}/cx.ring.yml
echo "CurrentVersionCode: ${versionCode}" >> ${METADATA_FOLDER}/cx.ring.yml
Sébastien Blin's avatar
Sébastien Blin committed

rm ${METADATA_FOLDER}/cx.ring.yml_
releaseDate=`date +%Y%m`
releaseBranch="release_${releaseDate}"
Sébastien Blin's avatar
Sébastien Blin committed
git -C fdroiddata add metadata/cx.ring.yml
git -C fdroiddata commit -s -m "Updates Jami to $versionName"
Sébastien Blin's avatar
Sébastien Blin committed
git -C fdroiddata push origin HEAD:refs/heads/${releaseBranch} -f
git -C fdroiddata status

FDROID_METADATA_PROJECT_ID=36528
SFL_METADATA_PROJECT_ID=10540147

if [ $# -ge 4 ] ; then
    curl --request POST \
    --url https://gitlab.com/api/v4/projects/${SFL_METADATA_PROJECT_ID}/merge_requests \
    --header 'content-type: application/json' \
    --header "private-token: ${gitlabToken}" \
    --data "{
    \"id\": 1,
    \"title\": \"New Jami revision\",
    \"target_branch\": \"master\",
    \"source_branch\": \"${releaseBranch}\",
    \"target_project_id\": ${FDROID_METADATA_PROJECT_ID}