87 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			87 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								#!/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
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								db=`sed -n 's,.*DB_VERSION *= *\([0-9][0-9]*\).*,\1,p' app/src/main/java/org/fdroid/fdroid/data/DBHelper.java`
							 | 
						||
| 
								 | 
							
								count=`git rev-list --first-parent --count HEAD`
							 | 
						||
| 
								 | 
							
								sed -i "s,versionCode *[0-9][0-9]*.*,versionCode `printf '%d%05d' $db $count`," app/build.gradle
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								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
							 |