diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 7d3865c..915493f 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,5 +1,5 @@
variables:
- VERSION_PATTERN: '/v\d+\.\d+(\.\d+)?/'
+ VERSION_PATTERN: '/^v\d+\.\d+(\.\d+)?$/'
GIT_SUBMODULE_STRATEGY: recursive
LIB_RELEASE_FOLDER: 'Borepin\Borepin\bin\Release'
UWP_RELEASE_FOLDER: 'Borepin\Borepin.UWP\bin\x86\Release'
@@ -87,7 +87,7 @@ pack_Android_AAB:
needs:
- build_Android
rules:
- - if: $CI_COMMIT_TAG != null && $CI_COMMIT_TAG =~ /v\d+\.\d+(\.\d+)?/
+ - if: $CI_COMMIT_TAG != null && $CI_COMMIT_TAG =~ $VERSION_PATTERN
tags:
- fabinfra
- internal
@@ -112,7 +112,7 @@ pack_Android_APK:
needs:
- build_Android
rules:
- - if: $CI_COMMIT_TAG != null && $CI_COMMIT_TAG =~ /v\d+\.\d+(\.\d+)?/
+ - if: $CI_COMMIT_TAG != null && $CI_COMMIT_TAG =~ $VERSION_PATTERN
tags:
- fabinfra
- internal
@@ -133,12 +133,38 @@ pack_Android_APK:
paths:
- Borepin/Borepin.Android/bin/Release/org.fab_infra.fabaccess-Signed.apk
+pack_FDroid_APK:
+ stage: pack
+ needs:
+ - build_Android
+ rules:
+ - if: $CI_COMMIT_TAG != null && $CI_COMMIT_TAG =~ $VERSION_PATTERN
+ tags:
+ - fabinfra
+ - internal
+ - windows
+ - powershell
+ - xamarin
+ before_script:
+ - '$Env:VERSION_NUMBER="$CI_COMMIT_TAG".SubString(1)'
+ - '$Env:BUILD_NUMBER="$CI_PIPELINE_ID"'
+ - '$Env:ANDROID_PKG_FORMAT="apk"'
+ script:
+ - '& "$WIN_NUGET_PATH" restore'
+ - '[System.IO.File]::WriteAllBytes("$(pwd)/fabaccess.keystore", [System.Convert]::FromBase64String($FDroidKeyStore))'
+ - '& "$WIN_MSBUILD_PATH" /t:Restore /t:Borepin_Android:SetVersion /p:Configuration=Release /target:Borepin_Android /target:Borepin_Android:SignAndroidPackage /p:AndroidKeyStore="True" /p:AndroidSigningKeyStore="$(pwd)/fabaccess.keystore" /p:AndroidSigningKeyPass="$FDroidKeyStore_Password" /p:AndroidSigningKeyAlias="$FDroidKeyStore_ID" /p:AndroidSigningStorePass="$FDroidKeyStore_Password"'
+ - 'rm "$(pwd)/fabaccess.keystore"'
+ artifacts:
+ expire_in: 1 week
+ paths:
+ - Borepin/Borepin.Android/bin/Release/org.fab_infra.fabaccess-Signed.apk
+
pack_iOS:
stage: pack
needs:
- build_iOS
rules:
- - if: $CI_COMMIT_TAG != null && $CI_COMMIT_TAG =~ /v\d+\.\d+(\.\d+)?/
+ - if: $CI_COMMIT_TAG != null && $CI_COMMIT_TAG =~ $VERSION_PATTERN
tags:
- fabinfra
- internal
@@ -162,7 +188,7 @@ deploy_Android_Internal:
needs:
- pack_Android_AAB
rules:
- - if: $CI_COMMIT_TAG != null && $CI_COMMIT_TAG =~ /v\d+\.\d+(\.\d+)?/
+ - if: $CI_COMMIT_TAG != null && $CI_COMMIT_TAG =~ $VERSION_PATTERN
tags:
- docker
image: registry.gitlab.com/fabinfra/gtk-sharp-build:latest
@@ -183,33 +209,81 @@ deploy_Android_Internal:
pages:
stage: deploy
needs:
- - pack_Android_APK
- - pack_iOS
+ - pack_FDroid_APK
rules:
- - if: $CI_COMMIT_TAG != null && $CI_COMMIT_TAG =~ /v\d+\.\d+(\.\d+)?/
+ - if: $CI_COMMIT_TAG != null && $CI_COMMIT_TAG =~ $VERSION_PATTERN
tags:
- docker
- image: registry.gitlab.com/fabinfra/gtk-sharp-build:latest
- variables:
- LC_ALL: 'en_US.UTF-8'
- LANG: 'en_US.UTF-8'
-
+ image:
+ name: ubuntu
+ # name: registry.gitlab.com/fdroid/docker-executable-fdroidserver:master
+ variables:
+ DEBIAN_FRONTEND: noninteractive
+ TZ: Europe/Berlin
before_script:
+ - 'apt-get update -yqq && apt-get install -yqq fdroidserver'
- 'export VERSION_NUMBER=${CI_COMMIT_TAG:1}'
- 'export BUILD_NUMBER="$CI_PIPELINE_ID"'
+ - 'cp -r fdroid/* .'
+ - 'echo "keystorepass: ${FDroidKeyStore_Password}" >> config.yml'
+ - 'echo "keypass: ${FDroidKeyStore_Password}" >> config.yml'
+ - 'echo ${FDroidKeyStore} | base64 -d > keystore.p12'
+ # - 'cat config.yml'
+ # - sha1sum keystore.p12
script:
- - 'mkdir -p public'
- - 'cp Borepin/Borepin.Android/bin/Release/org.fab_infra.fabaccess-Signed.apk public/'
+ - 'mkdir -p repo'
+ - 'cp Borepin/Borepin.Android/bin/Release/org.fab_infra.fabaccess-Signed.apk repo/'
+ - 'fdroid update'
+ - 'mkdir -p public/fdroid'
+ - 'cp -r repo public/fdroid/'
+ - 'rm keystore.p12'
artifacts:
paths:
- public
+upload_binaries:
+ stage: deploy
+ needs:
+ - pack_Android_APK
+ tags:
+ - docker
+ image: curlimages/curl:latest
+ before_script: []
+ cache: []
+ script:
+ - 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file Borepin/Borepin.Android/bin/Release/org.fab_infra.fabaccess-Signed.apk "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/borepin/${CI_COMMIT_TAG}/org.fab_infra.fabaccess-Signed.apk"'
+ rules:
+ - if: $CI_COMMIT_TAG != null && $CI_COMMIT_TAG =~ $VERSION_PATTERN
+
+release_job:
+ stage: deploy
+ needs:
+ - upload_binaries
+ image: registry.gitlab.com/gitlab-org/release-cli:latest
+ tags:
+ - docker
+ rules:
+ - if: $CI_COMMIT_TAG != null && $CI_COMMIT_TAG =~ $VERSION_PATTERN
+ - if: $CI_COMMIT_TAG =~ "release/.*"
+ when: never
+ when: manual
+ script:
+ - echo "Creating GitLab release…"
+ release:
+ name: "Borepin ${CI_COMMIT_TAG}"
+ description: "GitLab CI auto-created release"
+ tag_name: "release/${CI_COMMIT_TAG}"
+ assets:
+ links:
+ - name: 'Borepin signed apk'
+ url: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/borepin/${CI_COMMIT_TAG}/org.fab_infra.fabaccess-Signed.apk"
+
deploy_Android_Beta:
stage: deploy
needs:
- deploy_Android_Internal
rules:
- - if: $CI_COMMIT_TAG != null && $CI_COMMIT_TAG =~ /v\d+\.\d+(\.\d+)?/
+ - if: $CI_COMMIT_TAG != null && $CI_COMMIT_TAG =~ $VERSION_PATTERN
when: manual
tags:
- docker
@@ -232,7 +306,7 @@ deploy_Android_Production:
needs:
- deploy_Android_Beta
rules:
- - if: $CI_COMMIT_TAG != null && $CI_COMMIT_TAG =~ /v\d+\.\d+(\.\d+)?/
+ - if: $CI_COMMIT_TAG != null && $CI_COMMIT_TAG =~ $VERSION_PATTERN
when: manual
tags:
- docker
@@ -255,7 +329,7 @@ deploy_iOS_Internal:
needs:
- pack_iOS
rules:
- - if: $CI_COMMIT_TAG != null && $CI_COMMIT_TAG =~ /v\d+\.\d+(\.\d+)?/
+ - if: $CI_COMMIT_TAG != null && $CI_COMMIT_TAG =~ $VERSION_PATTERN
tags:
- fabinfra
- internal
@@ -282,7 +356,7 @@ deploy_iOS_Beta:
needs:
- pack_iOS
rules:
- - if: $CI_COMMIT_TAG != null && $CI_COMMIT_TAG =~ /v\d+\.\d+(\.\d+)?/
+ - if: $CI_COMMIT_TAG != null && $CI_COMMIT_TAG =~ $VERSION_PATTERN
when: manual
tags:
- fabinfra
@@ -310,7 +384,7 @@ deploy_iOS_Production:
needs:
- deploy_iOS_Beta
rules:
- - if: $CI_COMMIT_TAG != null && $CI_COMMIT_TAG =~ /v\d+\.\d+(\.\d+)?/
+ - if: $CI_COMMIT_TAG != null && $CI_COMMIT_TAG =~ $VERSION_PATTERN
when: manual
tags:
- fabinfra
diff --git a/Borepin/Borepin.Android/Borepin.Android.csproj b/Borepin/Borepin.Android/Borepin.Android.csproj
index 9b97e58..3dd24cb 100644
--- a/Borepin/Borepin.Android/Borepin.Android.csproj
+++ b/Borepin/Borepin.Android/Borepin.Android.csproj
@@ -16,7 +16,7 @@
Properties\AndroidManifest.xml
Resources
Assets
- v11.0
+ v13.0
true
true
Xamarin.Android.Net.AndroidClientHandler
diff --git a/Borepin/Borepin.Android/Properties/AndroidManifest.xml b/Borepin/Borepin.Android/Properties/AndroidManifest.xml
index f8a66e9..45d1042 100644
--- a/Borepin/Borepin.Android/Properties/AndroidManifest.xml
+++ b/Borepin/Borepin.Android/Properties/AndroidManifest.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/Borepin/Borepin/Page/ProfilePage.xaml b/Borepin/Borepin/Page/ProfilePage.xaml
index 6f21c73..834c3e9 100644
--- a/Borepin/Borepin/Page/ProfilePage.xaml
+++ b/Borepin/Borepin/Page/ProfilePage.xaml
@@ -7,6 +7,7 @@
Title="{x:Static resource_text:TextResource.TITLE_Profile}">
+
diff --git a/fdroid/config.yml b/fdroid/config.yml
new file mode 100644
index 0000000..0443606
--- /dev/null
+++ b/fdroid/config.yml
@@ -0,0 +1,9 @@
+repo_keyalias: Persephone
+
+keydname: CN=Persephone, OU=F-Droid
+
+
+
+repo_url: "https://fdroid.fab-access.org/fdroid/repo"
+repo_name: "FabAccess F-Droid Repo"
+repo_description: F-Droid repo for FabAccess.
diff --git a/fdroid/metadata/org.fab_infra.fabaccess.yml b/fdroid/metadata/org.fab_infra.fabaccess.yml
new file mode 100644
index 0000000..5fec26f
--- /dev/null
+++ b/fdroid/metadata/org.fab_infra.fabaccess.yml
@@ -0,0 +1,9 @@
+AuthorName: 'RLKM UG (haftungsbeschränkt)'
+Categories:
+- Productivity
+IssueTracker: 'https://gitlab.com/fabinfra/fabaccess/borepin/-/issues'
+Name: FabAccess
+SourceCode: 'https://gitlab.com/fabinfra/fabaccess/borepin'
+Summary: 'FabAccess is a federatable management system for FabLabs, Makerspaces and Hackerspaces. FabAccess aims to manage access to machines in order to avoid accidents.'
+WebSite: 'https://fab-access.org'
+License: GPL-3.0-only
\ No newline at end of file