Compare commits

..
1 Commits
Author SHA1 Message Date
vkamn 2bd60309d0 feat: ci release ios (#3465)
* feat: upload Play AABs to the Google Play beta track on version tags

* chore: bump xcode-version

* fix: pass provisioning profiles explicitly when exporting Apple archives
2026-11-14 01:56:40 +09:00
3 changed files with 65 additions and 4 deletions

No files matched your search

+33
View File
@@ -1782,3 +1782,36 @@ jobs:
- name: 'Upload macOS build to TestFlight'
run: fastlane mac testflight_upload 2>&1 | sed -f hide_secrets.sed
# ------------------------------------------------------
Google-Play:
if: startsWith(github.ref, 'refs/tags/')
needs: [Build-Linux-Ubuntu, Build-Windows, Build-iOS, Build-MacOS, Build-MacOS-NE, Build-Android]
runs-on: ubuntu-latest
defaults:
run:
working-directory: deploy
shell: bash
steps:
- name: 'Get fastlane config'
uses: actions/checkout@v4
with:
sparse-checkout: |
deploy/fastlane
deploy/hide_secrets.sed
sparse-checkout-cone-mode: false
- name: 'Download Play AABs'
uses: actions/download-artifact@v8
with:
pattern: 'AmneziaVPN_*_play.aab'
path: deploy/build/android
merge-multiple: true
- name: 'Upload to Google Play beta'
env:
GOOGLE_PLAY_SERVICE_ACCOUNT_JSON: ${{ secrets.GOOGLE_PLAY_SERVICE_ACCOUNT_JSON }}
run: fastlane android play_upload 2>&1 | sed -f hide_secrets.sed
+1 -1
View File
@@ -5,7 +5,7 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(PROJECT AmneziaVPN)
if(NOT AMNEZIAVPN_VERSION)
set(AMNEZIAVPN_VERSION 5.1.1.3 CACHE STRING "Client app version")
set(AMNEZIAVPN_VERSION 5.1.1.4 CACHE STRING "Client app version")
endif()
set(QT_CREATOR_SKIP_PACKAGE_MANAGER_SETUP ON CACHE BOOL "" FORCE)
+31 -3
View File
@@ -1,9 +1,21 @@
def archive_build(app_platform)
def cmake_cache_value(name)
File.read("../build/CMakeCache.txt")[/^#{name}:\w+=(.*)$/, 1]
end
def archive_build(app_platform, profile_platform)
app_identifier = cmake_cache_value("BUILD_IOS_APP_IDENTIFIER")
build_app(
project: "build/AmneziaVPN.xcodeproj",
scheme: "AmneziaVPN",
configuration: "Release",
export_method: "app-store",
export_options: {
signingStyle: "manual",
provisioningProfiles: {
app_identifier => cmake_cache_value("CLIENT_#{profile_platform}_PROVISIONING_PROFILE_SPECIFIER"),
"#{app_identifier}.network-extension" => cmake_cache_value("CLIENT_#{profile_platform}_NE_PROVISIONING_PROFILE_SPECIFIER")
}
},
output_directory: "build/#{app_platform}",
output_name: "AmneziaVPN"
)
@@ -21,7 +33,7 @@ end
platform :ios do
lane :archive do
archive_build("ios")
archive_build("ios", "IOS")
end
lane :testflight_upload do
@@ -32,7 +44,7 @@ end
platform :mac do
lane :archive do
archive_build("osx")
archive_build("osx", "MACOS")
end
lane :testflight_upload do
@@ -40,3 +52,19 @@ platform :mac do
upload_to_testflight(app_platform: "osx", pkg: "build/osx/AmneziaVPN.pkg", skip_waiting_for_build_processing: true)
end
end
platform :android do
lane :play_upload do
upload_to_play_store(
package_name: "org.amnezia.vpn",
track: "beta",
release_status: "draft",
aab_paths: Dir["../build/android/*_play.aab"].map { |path| File.expand_path(path) },
json_key_data: ENV.fetch("GOOGLE_PLAY_SERVICE_ACCOUNT_JSON"),
skip_upload_metadata: true,
skip_upload_changelogs: true,
skip_upload_images: true,
skip_upload_screenshots: true
)
end
end