Yes, that's possible. You need to use app center fastlane plugin. You need to use appcenter_upload function. SSH has nothing to do with the whole process.
In your FastFile you need to configure a lane in following manner:
desc 'Deploy a new version to the AppCenter'
lane :upload_to_appcenter do |options|
config = fetch_configuration(for_release_type: options[:release_type], for_project_dir: ENV['PROJECT_DIR'])
gradle(
task: 'assemble',
build_type: 'Release',
properties: {
"AppCenterEnvironment" => options[:release_type],
"android.injected.signing.store.file" => ENV['KEYSTORE'],
"android.injected.signing.store.password" => ENV['KEYSTORE_PASSWORD'],
"android.injected.signing.key.alias" => ENV['KEYALIAS'],
"android.injected.signing.key.password" => ENV['KEYALIAS_PASSWORD'],
"VersionPatchNumber" => config['app_version_patch_number']
})
perform_backup
appcenter_upload(
app_name: config['appcenter_name'],
file: lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH],
destinations: '*',
release_notes: default_changelog,
notify_testers: true,
mapping: 'app/build/outputs/mapping/release/mapping.txt'
)
end
In your CI pipeline yaml you'll have to have something line this:
- script: bundle exec fastlane upload_to_appcenter
displayName: Upload to AppCenter
condition: eq(variables['Build.SourceBranch'], 'refs/heads/development')
env:
APPCENTER_TOKEN: $(APPCENTER_API_TOKEN)
APPCENTER_OWNER_NAME: $(APPCENTER_OWNER)
RSYNC_PASSWORD: $(RSYNC_PASSWORD)
This will push version for every change of the head of development.
Please look at the repo guide how you can provide ENV variable, also look at your CI how you can pass params from the yaml to FastLane.