コード例 #1
0
def android_multiarch_release():
    module_build_tasks = build_gradle_modules_tasks(True)

    version = appservices_version()
    worker_type = os.environ['BEETMOVER_WORKER_TYPE']
    bucket_name = os.environ['BEETMOVER_BUCKET']
    bucket_public_url = os.environ['BEETMOVER_BUCKET_PUBLIC_URL']

    for module_info in module_definitions():
        module = module_info['name']
        build_task = module_build_tasks[module]
        for artifact in module_info['artifacts']:
            artifact_name = artifact['name']
            artifact_path = artifact['path']
            (BeetmoverTask("Publish Android module: {} via beetmover".format(
                artifact_name)).with_description(
                    "Publish release module {} to {}".format(
                        artifact_name,
                        bucket_public_url)).with_worker_type(worker_type)
             # We want to make sure ALL builds succeeded before doing a release.
             .with_dependencies(*module_build_tasks.values(
             )).with_upstream_artifact({
                 "paths": [artifact_path],
                 "taskId": build_task,
                 "taskType": "build",
                 "zipExtract": True,
             }).with_app_name("appservices").with_artifact_id(artifact_name).
             with_app_version(version).with_scopes(
                 "project:mozilla:application-services:releng:beetmover:bucket:{}"
                 .format(bucket_name),
                 "project:mozilla:application-services:releng:beetmover:action:push-to-maven"
             ).create())
コード例 #2
0
def build_gradle_modules_tasks(deploy_environment):
    libs_tasks = libs_for(deploy_environment, "android", "desktop_linux",
                          "desktop_macos", "desktop_win32_x86_64")
    module_build_tasks = {}
    for module_info in module_definitions():
        module_build_tasks[module_info['name']] = gradle_module_task(
            libs_tasks, module_info, deploy_environment)
    return module_build_tasks
コード例 #3
0
def build_gradle_modules_tasks(is_release):
    libs_tasks = libs_for("android", "desktop_linux", "desktop_macos",
                          "desktop_win32_x86_64")
    module_build_tasks = {}
    for module_info in module_definitions():
        module_build_tasks[module_info['name']] = gradle_module_task(
            libs_tasks, module_info, is_release)
    return module_build_tasks
コード例 #4
0
def android_linux_x86_64():
    ktlint_detekt()
    libs_tasks = libs_for(DeployEnvironment.NONE, "android", "desktop_linux",
                          "desktop_macos", "desktop_win32_x86_64")
    task = (android_task("Build and test (Android - linux-x86-64)",
                         libs_tasks).with_script("""
            echo "rust.targets=linux-x86-64,x86_64\n" > local.properties
        """).with_script("""
            yes | sdkmanager --update
            yes | sdkmanager --licenses
            ./gradlew --no-daemon clean
            ./gradlew --no-daemon assembleDebug
            ./gradlew --no-daemon testDebug
        """))
    for module_info in module_definitions():
        module = module_info['name']
        if module.endswith("-megazord"):
            task.with_script("./automation/check_megazord.sh {}".format(
                module[0:-9].replace("-", "_")))
    return task.create()
コード例 #5
0
def android_multiarch_release(is_staging):
    module_build_tasks = build_gradle_modules_tasks(
        DeployEnvironment.STAGING_RELEASE if is_staging else DeployEnvironment.
        RELEASE)

    version = appservices_version()
    bucket_name = os.environ['BEETMOVER_BUCKET']
    bucket_public_url = os.environ['BEETMOVER_BUCKET_PUBLIC_URL']

    for module_info in module_definitions():
        module = module_info['name']
        build_task = module_build_tasks[module]
        sign_task = (
            SignTask("Sign Android module: {}".format(module)).
            with_description("Signs module").with_worker_type(
                "appsv-signing-dep-v1" if is_staging else "appsv-signing-v1")
            # We want to make sure ALL builds succeeded before doing a release.
            .with_dependencies(*module_build_tasks.values(
            )).with_upstream_artifact({
                "paths": [
                    artifact["taskcluster_path"]
                    for publication in module_info["publications"]
                    for artifact in publication.to_artifacts(('', ))
                ],
                "formats": ["autograph_gpg"],
                "taskId":
                build_task,
                "taskType":
                "build"
            }).with_scopes(
                "project:mozilla:application-services:releng:signing:cert:{}-signing"
                .format("dep" if is_staging else "release")).create())

        (BeetmoverTask("Publish Android module: {} via beetmover".format(
            module)).with_description("Publish release module {} to {}".format(
                module, bucket_public_url)).with_worker_type(
                    os.environ['BEETMOVER_WORKER_TYPE']).
         with_dependencies(sign_task).with_upstream_artifact({
             "paths": [
                 artifact['taskcluster_path']
                 for publication in module_info["publications"]
                 for artifact in publication.to_artifacts(('', '.sha1',
                                                           '.md5'))
             ],
             "taskId":
             build_task,
             "taskType":
             "build",
         }).with_upstream_artifact({
             "paths": [
                 artifact['taskcluster_path']
                 for publication in module_info["publications"]
                 for artifact in publication.to_artifacts(('.asc', ))
             ],
             "taskId":
             sign_task,
             "taskType":
             "signing",
         }).with_app_name("appservices").with_artifact_map([
             {
                 "locale": "en-US",
                 "taskId": build_task,
                 "paths": {
                     artifact["taskcluster_path"]: {
                         "checksums_path":
                         "",  # TODO beetmover marks this as required, but it's not needed
                         "destinations": [artifact["maven_destination"]],
                     }
                     for publication in module_info["publications"]
                     for artifact in publication.to_artifacts(('', '.sha1',
                                                               '.md5'))
                 }
             },
             {
                 "locale": "en-US",
                 "taskId": sign_task,
                 "paths": {
                     artifact["taskcluster_path"]: {
                         "checksums_path":
                         "",  # TODO beetmover marks this as required, but it's not needed
                         "destinations": [artifact["maven_destination"]],
                     }
                     for publication in module_info["publications"]
                     for artifact in publication.to_artifacts(('.asc', ))
                 },
             }
         ]).with_app_version(version).with_scopes(
             "project:mozilla:application-services:releng:beetmover:bucket:{}".
             format(bucket_name),
             "project:mozilla:application-services:releng:beetmover:action:push-to-maven"
         ).with_routes(
             "[email protected]").create())
コード例 #6
0
def build_gradle_modules_tasks(deploy_environment):
    libs_tasks = libs_for(deploy_environment, "android")
    module_build_tasks = {}
    for module_info in module_definitions():
        module_build_tasks[module_info['name']] = gradle_module_task(libs_tasks, module_info, deploy_environment)
    return module_build_tasks