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