This provides an automatic way to generate updates from each new debug build, it is build from the developer's machine or via the nightly repo.
		
			
				
	
	
		
			83 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash
 | 
						|
 | 
						|
set -e
 | 
						|
set -x
 | 
						|
 | 
						|
echo "deb http://deb.debian.org/debian stretch-backports main" \
 | 
						|
     > /etc/apt/sources.list.d/stretch-backports.list
 | 
						|
apt-get update
 | 
						|
apt-get install -y --no-install-recommends -t stretch-backports \
 | 
						|
        fdroidserver openssh-client rsync python3-qrcode
 | 
						|
 | 
						|
repo_git_base=${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}-nightly
 | 
						|
repo_base=https://gitlab.com/${repo_git_base}
 | 
						|
repo_url=${repo_base}/raw/master/fdroid/repo
 | 
						|
archive_url=${repo_base}/raw/master/fdroid/archive
 | 
						|
mkdir -p $HOME/.android
 | 
						|
keystore=$HOME/.android/debug.keystore
 | 
						|
echo "repo_name = '$repo_git_base'"              >> config/nightly-repo/config.py
 | 
						|
echo "repo_url = '$repo_url'"                    >> config/nightly-repo/config.py
 | 
						|
echo "archive_name = '$repo_git_base archive'"   >> config/nightly-repo/config.py
 | 
						|
echo "archive_url = '$archive_url'"              >> config/nightly-repo/config.py
 | 
						|
echo "servergitmirrors = 'git@gitlab.com:$repo_git_base'" >> config/nightly-repo/config.py
 | 
						|
echo "keystore = '$keystore'" >> config/nightly-repo/config.py
 | 
						|
chmod 0600 config/nightly-repo/config.py
 | 
						|
 | 
						|
sed -i -e '/<\/string-array>/d' -e '/<\/resources>/d' \
 | 
						|
    app/src/main/res/values/default_repos.xml
 | 
						|
echo "<item>$repo_git_base</item>" >> app/src/main/res/values/default_repos.xml
 | 
						|
echo "<item>$repo_url</item>"      >> app/src/main/res/values/default_repos.xml
 | 
						|
cat config/nightly-repo/repo.xml   >> app/src/main/res/values/default_repos.xml
 | 
						|
echo "</string-array></resources>" >> app/src/main/res/values/default_repos.xml
 | 
						|
 | 
						|
set +x # do not show contents of secret variables!
 | 
						|
echo $DEBUG_KEYSTORE | base64 --decode --ignore-garbage > $keystore
 | 
						|
set -x
 | 
						|
 | 
						|
./gradlew assembleDebug -PdisablePreDex
 | 
						|
 | 
						|
mkdir config/nightly-repo/repo/
 | 
						|
mv app/build/outputs/apk/app-debug.apk  config/nightly-repo/repo/
 | 
						|
cd config/nightly-repo
 | 
						|
 | 
						|
pw=android
 | 
						|
alias=androiddebugkey
 | 
						|
keytool -v -importkeystore \
 | 
						|
        -srckeystore $keystore -srcalias $alias -srcstorepass $pw -srckeypass $pw \
 | 
						|
        -destkeystore keystore.p12 -destalias $alias -deststorepass $pw -destkeypass $pw -deststoretype PKCS12
 | 
						|
 | 
						|
ssh_private_key=$HOME/.ssh/id_rsa
 | 
						|
mkdir -p $(dirname $ssh_private_key)
 | 
						|
openssl pkcs12 -in keystore.p12 -out key.pem -passin pass:$pw -passout pass:$pw
 | 
						|
openssl rsa -in key.pem -out ${ssh_private_key} -passin pass:$pw
 | 
						|
chmod 600 ${ssh_private_key}
 | 
						|
ssh-keygen -y -f ${ssh_private_key} > ${ssh_private_key}.pub
 | 
						|
echo "SSH public deploy key:"
 | 
						|
cat  ${ssh_private_key}.pub
 | 
						|
eval $(ssh-agent -s)
 | 
						|
ssh-add ${ssh_private_key}
 | 
						|
 | 
						|
if git clone $repo_base git-mirror; then
 | 
						|
    cd git-mirror
 | 
						|
    git remote rm origin
 | 
						|
    qr $repo_url > qr.png
 | 
						|
    echo "#  $repo_git_base" > README.md
 | 
						|
    echo "[]($repo_url)" >> README.md
 | 
						|
    printf "\n\nLast updated: " >> README.md
 | 
						|
    date >> README.md
 | 
						|
    git add README.md
 | 
						|
    git config user.email "$CI_PROJECT_NAMESPACE@$CI_PROJECT_NAME"
 | 
						|
    git config user.name "$CI_PROJECT_NAMESPACE $CI_PROJECT_NAME"
 | 
						|
    git commit README.md -m README
 | 
						|
    cd ..
 | 
						|
fi
 | 
						|
if [ -d git-mirror/fdroid/repo ]; then
 | 
						|
    rsync -axv git-mirror/fdroid/repo/ repo/
 | 
						|
fi
 | 
						|
 | 
						|
fdroid update --rename-apks
 | 
						|
 | 
						|
ssh-add -l
 | 
						|
echo -e "Host *\n\tStrictHostKeyChecking no\n\n" >> ~/.ssh/config
 | 
						|
fdroid server update --verbose
 |