【问题标题】:How do I automate builds using App Center?如何使用 App Center 自动化构建?
【发布时间】:2022-06-26 14:02:48
【问题描述】:

我将 App Center 用作我的应用程序的 CI 和 CD。我必须手动配置我需要构建和分发的所有分支。

我想要什么

如果有人从develop/master创建一个特性分支并推送代码,那么App Center应该像CircleCI等一样开始自动运行。

这在应用中心是不可能的吗?

【问题讨论】:

    标签: android ios react-native continuous-integration appcenter


    【解决方案1】:

    是的,这是可能的。您需要使用app center fastlane plugin。您需要使用appcenter_upload 函数。 SSH与整个过程无关。

    在您的FastFile 中,您需要按以下方式配置通道:

      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
    
    

    在您的 CI 管道 yaml 中,您必须有这样的内容:

     - 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)
    

    这将为development的头部的每次更改推送版本。

    请查看 repo 指南如何提供 ENV 变量,还请查看您的 CI 如何将参数从 yaml 传递到 FastLane

    【讨论】:

    • 这是为了将你的构建发布到 appcenter。我正在使用 appcenter ci,我需要在其中配置需要运行 CI 的每个分支。我的问题有什么办法可以自动化吗?
    猜你喜欢
    • 1970-01-01
    • 2017-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-24
    • 1970-01-01
    相关资源
    最近更新 更多