@invarn/cibuild 2.9.5 → 2.9.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-35SI42CD.mjs +1 -0
- package/dist/chunk-IC45KVLJ.mjs +1 -0
- package/dist/chunk-XDY4V23V.mjs +1 -0
- package/dist/cli.cjs +14 -14
- package/dist/commands.mjs +1 -0
- package/dist/lib.mjs +3934 -0
- package/package.json +6 -10
- package/dist/src/cli.d.ts +0 -3
- package/dist/src/cli.d.ts.map +0 -1
- package/dist/src/cli.js +0 -399
- package/dist/src/commands/a-credential-target-follows-the-flavor-source-set.test.d.ts +0 -38
- package/dist/src/commands/a-credential-target-follows-the-flavor-source-set.test.d.ts.map +0 -1
- package/dist/src/commands/a-credential-target-follows-the-flavor-source-set.test.js +0 -222
- package/dist/src/commands/a-credential-two-workflows-cannot-share-is-declared-per-workflow.test.d.ts +0 -41
- package/dist/src/commands/a-credential-two-workflows-cannot-share-is-declared-per-workflow.test.d.ts.map +0 -1
- package/dist/src/commands/a-credential-two-workflows-cannot-share-is-declared-per-workflow.test.js +0 -324
- package/dist/src/commands/a-properties-stand-in-declares-the-keys-the-build-reads.test.d.ts +0 -2
- package/dist/src/commands/a-properties-stand-in-declares-the-keys-the-build-reads.test.d.ts.map +0 -1
- package/dist/src/commands/a-properties-stand-in-declares-the-keys-the-build-reads.test.js +0 -382
- package/dist/src/commands/an-already-stored-value-does-not-answer-the-target-question.test.d.ts +0 -29
- package/dist/src/commands/an-already-stored-value-does-not-answer-the-target-question.test.d.ts.map +0 -1
- package/dist/src/commands/an-already-stored-value-does-not-answer-the-target-question.test.js +0 -160
- package/dist/src/commands/android-gms-guard.test.d.ts +0 -9
- package/dist/src/commands/android-gms-guard.test.d.ts.map +0 -1
- package/dist/src/commands/android-gms-guard.test.js +0 -78
- package/dist/src/commands/android-java-version.test.d.ts +0 -12
- package/dist/src/commands/android-java-version.test.d.ts.map +0 -1
- package/dist/src/commands/android-java-version.test.js +0 -209
- package/dist/src/commands/android-scanner-java.test.d.ts +0 -2
- package/dist/src/commands/android-scanner-java.test.d.ts.map +0 -1
- package/dist/src/commands/android-scanner-java.test.js +0 -130
- package/dist/src/commands/android-scanner.d.ts +0 -250
- package/dist/src/commands/android-scanner.d.ts.map +0 -1
- package/dist/src/commands/android-scanner.js +0 -1639
- package/dist/src/commands/build.d.ts +0 -215
- package/dist/src/commands/build.d.ts.map +0 -1
- package/dist/src/commands/build.js +0 -1433
- package/dist/src/commands/build.test.d.ts +0 -13
- package/dist/src/commands/build.test.d.ts.map +0 -1
- package/dist/src/commands/build.test.js +0 -121
- package/dist/src/commands/detect-platform.d.ts +0 -13
- package/dist/src/commands/detect-platform.d.ts.map +0 -1
- package/dist/src/commands/detect-platform.js +0 -51
- package/dist/src/commands/detect-project.d.ts +0 -7
- package/dist/src/commands/detect-project.d.ts.map +0 -1
- package/dist/src/commands/detect-project.js +0 -12
- package/dist/src/commands/each-flavor-is-asked-for-its-own-properties-file.test.d.ts +0 -26
- package/dist/src/commands/each-flavor-is-asked-for-its-own-properties-file.test.d.ts.map +0 -1
- package/dist/src/commands/each-flavor-is-asked-for-its-own-properties-file.test.js +0 -196
- package/dist/src/commands/edit.d.ts +0 -12
- package/dist/src/commands/edit.d.ts.map +0 -1
- package/dist/src/commands/edit.js +0 -652
- package/dist/src/commands/edit.test.d.ts +0 -6
- package/dist/src/commands/edit.test.d.ts.map +0 -1
- package/dist/src/commands/edit.test.js +0 -45
- package/dist/src/commands/fidelity-trim.d.ts +0 -13
- package/dist/src/commands/fidelity-trim.d.ts.map +0 -1
- package/dist/src/commands/fidelity-trim.js +0 -21
- package/dist/src/commands/fidelity-trim.test.d.ts +0 -8
- package/dist/src/commands/fidelity-trim.test.d.ts.map +0 -1
- package/dist/src/commands/fidelity-trim.test.js +0 -79
- package/dist/src/commands/file-secret-collector.d.ts +0 -50
- package/dist/src/commands/file-secret-collector.d.ts.map +0 -1
- package/dist/src/commands/file-secret-collector.js +0 -217
- package/dist/src/commands/flavors-a-convention-plugin-creates-are-still-found.test.d.ts +0 -38
- package/dist/src/commands/flavors-a-convention-plugin-creates-are-still-found.test.d.ts.map +0 -1
- package/dist/src/commands/flavors-a-convention-plugin-creates-are-still-found.test.js +0 -300
- package/dist/src/commands/github-workflow.d.ts +0 -5
- package/dist/src/commands/github-workflow.d.ts.map +0 -1
- package/dist/src/commands/github-workflow.js +0 -45
- package/dist/src/commands/index.d.ts +0 -33
- package/dist/src/commands/index.d.ts.map +0 -1
- package/dist/src/commands/index.js +0 -33
- package/dist/src/commands/init.d.ts +0 -20
- package/dist/src/commands/init.d.ts.map +0 -1
- package/dist/src/commands/init.js +0 -264
- package/dist/src/commands/ios-scanner.d.ts +0 -104
- package/dist/src/commands/ios-scanner.d.ts.map +0 -1
- package/dist/src/commands/ios-scanner.js +0 -492
- package/dist/src/commands/ios-scheme-ranking.test.d.ts +0 -2
- package/dist/src/commands/ios-scheme-ranking.test.d.ts.map +0 -1
- package/dist/src/commands/ios-scheme-ranking.test.js +0 -264
- package/dist/src/commands/local-properties-reaches-every-workflow.test.d.ts +0 -30
- package/dist/src/commands/local-properties-reaches-every-workflow.test.d.ts.map +0 -1
- package/dist/src/commands/local-properties-reaches-every-workflow.test.js +0 -146
- package/dist/src/commands/reset.d.ts +0 -7
- package/dist/src/commands/reset.d.ts.map +0 -1
- package/dist/src/commands/reset.js +0 -81
- package/dist/src/commands/run.d.ts +0 -22
- package/dist/src/commands/run.d.ts.map +0 -1
- package/dist/src/commands/run.js +0 -141
- package/dist/src/commands/secrets-sync-workflow.d.ts +0 -15
- package/dist/src/commands/secrets-sync-workflow.d.ts.map +0 -1
- package/dist/src/commands/secrets-sync-workflow.js +0 -255
- package/dist/src/commands/secrets-upload.d.ts +0 -21
- package/dist/src/commands/secrets-upload.d.ts.map +0 -1
- package/dist/src/commands/secrets-upload.js +0 -177
- package/dist/src/commands/secrets-upload.test.d.ts +0 -5
- package/dist/src/commands/secrets-upload.test.d.ts.map +0 -1
- package/dist/src/commands/secrets-upload.test.js +0 -60
- package/dist/src/commands/validate.d.ts +0 -10
- package/dist/src/commands/validate.d.ts.map +0 -1
- package/dist/src/commands/validate.js +0 -46
- package/dist/src/config.d.ts +0 -3
- package/dist/src/config.d.ts.map +0 -1
- package/dist/src/config.js +0 -47
- package/dist/src/envman/cli.d.ts +0 -21
- package/dist/src/envman/cli.d.ts.map +0 -1
- package/dist/src/envman/cli.js +0 -240
- package/dist/src/envman/envman.d.ts +0 -83
- package/dist/src/envman/envman.d.ts.map +0 -1
- package/dist/src/envman/envman.js +0 -361
- package/dist/src/envman/envman.test.d.ts +0 -5
- package/dist/src/envman/envman.test.d.ts.map +0 -1
- package/dist/src/envman/envman.test.js +0 -236
- package/dist/src/envman/envstore-round-trip.test.d.ts +0 -27
- package/dist/src/envman/envstore-round-trip.test.d.ts.map +0 -1
- package/dist/src/envman/envstore-round-trip.test.js +0 -130
- package/dist/src/envman/index.d.ts +0 -23
- package/dist/src/envman/index.d.ts.map +0 -1
- package/dist/src/envman/index.js +0 -23
- package/dist/src/envman/shim.d.ts +0 -16
- package/dist/src/envman/shim.d.ts.map +0 -1
- package/dist/src/envman/shim.js +0 -66
- package/dist/src/envman/types.d.ts +0 -55
- package/dist/src/envman/types.d.ts.map +0 -1
- package/dist/src/envman/types.js +0 -12
- package/dist/src/lib.d.ts +0 -33
- package/dist/src/lib.d.ts.map +0 -1
- package/dist/src/lib.js +0 -37
- package/dist/src/pipeline.d.ts +0 -3
- package/dist/src/pipeline.d.ts.map +0 -1
- package/dist/src/pipeline.js +0 -57
- package/dist/src/runner-node-step.test.d.ts +0 -12
- package/dist/src/runner-node-step.test.d.ts.map +0 -1
- package/dist/src/runner-node-step.test.js +0 -61
- package/dist/src/runner.d.ts +0 -31
- package/dist/src/runner.d.ts.map +0 -1
- package/dist/src/runner.js +0 -240
- package/dist/src/shared/detect-project.d.ts +0 -57
- package/dist/src/shared/detect-project.d.ts.map +0 -1
- package/dist/src/shared/detect-project.js +0 -219
- package/dist/src/shared/detect-project.test.d.ts +0 -2
- package/dist/src/shared/detect-project.test.d.ts.map +0 -1
- package/dist/src/shared/detect-project.test.js +0 -161
- package/dist/src/shared/git.d.ts +0 -25
- package/dist/src/shared/git.d.ts.map +0 -1
- package/dist/src/shared/git.js +0 -53
- package/dist/src/shared/git.test.d.ts +0 -9
- package/dist/src/shared/git.test.d.ts.map +0 -1
- package/dist/src/shared/git.test.js +0 -66
- package/dist/src/shared/gitignore.d.ts +0 -6
- package/dist/src/shared/gitignore.d.ts.map +0 -1
- package/dist/src/shared/gitignore.js +0 -26
- package/dist/src/shared/gradle-settings.d.ts +0 -49
- package/dist/src/shared/gradle-settings.d.ts.map +0 -1
- package/dist/src/shared/gradle-settings.js +0 -138
- package/dist/src/shared/gradle-settings.test.d.ts +0 -2
- package/dist/src/shared/gradle-settings.test.d.ts.map +0 -1
- package/dist/src/shared/gradle-settings.test.js +0 -65
- package/dist/src/shared/prompts.d.ts +0 -30
- package/dist/src/shared/prompts.d.ts.map +0 -1
- package/dist/src/shared/prompts.js +0 -121
- package/dist/src/shared/xcode-container.test.d.ts +0 -2
- package/dist/src/shared/xcode-container.test.d.ts.map +0 -1
- package/dist/src/shared/xcode-container.test.js +0 -123
- package/dist/src/step-marker.d.ts +0 -12
- package/dist/src/step-marker.d.ts.map +0 -1
- package/dist/src/step-marker.js +0 -29
- package/dist/src/step-marker.test.d.ts +0 -11
- package/dist/src/step-marker.test.d.ts.map +0 -1
- package/dist/src/step-marker.test.js +0 -45
- package/dist/src/types.d.ts +0 -58
- package/dist/src/types.d.ts.map +0 -1
- package/dist/src/types.js +0 -2
- package/dist/src/yaml/a-cache-path-must-not-swallow-a-credential.test.d.ts +0 -28
- package/dist/src/yaml/a-cache-path-must-not-swallow-a-credential.test.d.ts.map +0 -1
- package/dist/src/yaml/a-cache-path-must-not-swallow-a-credential.test.js +0 -223
- package/dist/src/yaml/a-declared-secret-reaches-the-file-step.test.d.ts +0 -20
- package/dist/src/yaml/a-declared-secret-reaches-the-file-step.test.d.ts.map +0 -1
- package/dist/src/yaml/a-declared-secret-reaches-the-file-step.test.js +0 -201
- package/dist/src/yaml/a-declared-slot-may-name-the-workflow-it-belongs-to.test.d.ts +0 -37
- package/dist/src/yaml/a-declared-slot-may-name-the-workflow-it-belongs-to.test.d.ts.map +0 -1
- package/dist/src/yaml/a-declared-slot-may-name-the-workflow-it-belongs-to.test.js +0 -255
- package/dist/src/yaml/a-missing-credential-is-loud.test.d.ts +0 -32
- package/dist/src/yaml/a-missing-credential-is-loud.test.d.ts.map +0 -1
- package/dist/src/yaml/a-missing-credential-is-loud.test.js +0 -301
- package/dist/src/yaml/a-runtime-requirement-names-a-real-provider.test.d.ts +0 -18
- package/dist/src/yaml/a-runtime-requirement-names-a-real-provider.test.d.ts.map +0 -1
- package/dist/src/yaml/a-runtime-requirement-names-a-real-provider.test.js +0 -66
- package/dist/src/yaml/a-scoped-slot-must-name-a-workflow-the-pipeline-has.test.d.ts +0 -34
- package/dist/src/yaml/a-scoped-slot-must-name-a-workflow-the-pipeline-has.test.d.ts.map +0 -1
- package/dist/src/yaml/a-scoped-slot-must-name-a-workflow-the-pipeline-has.test.js +0 -218
- package/dist/src/yaml/a-value-this-instance-stored-is-a-value-it-has.test.d.ts +0 -27
- package/dist/src/yaml/a-value-this-instance-stored-is-a-value-it-has.test.d.ts.map +0 -1
- package/dist/src/yaml/a-value-this-instance-stored-is-a-value-it-has.test.js +0 -126
- package/dist/src/yaml/bitrise-compat.d.ts +0 -65
- package/dist/src/yaml/bitrise-compat.d.ts.map +0 -1
- package/dist/src/yaml/bitrise-compat.js +0 -206
- package/dist/src/yaml/bitrise-compat.test.d.ts +0 -5
- package/dist/src/yaml/bitrise-compat.test.d.ts.map +0 -1
- package/dist/src/yaml/bitrise-compat.test.js +0 -347
- package/dist/src/yaml/cache-key-missing-file.test.d.ts +0 -12
- package/dist/src/yaml/cache-key-missing-file.test.d.ts.map +0 -1
- package/dist/src/yaml/cache-key-missing-file.test.js +0 -116
- package/dist/src/yaml/converter.d.ts +0 -103
- package/dist/src/yaml/converter.d.ts.map +0 -1
- package/dist/src/yaml/converter.js +0 -420
- package/dist/src/yaml/converter.test.d.ts +0 -5
- package/dist/src/yaml/converter.test.d.ts.map +0 -1
- package/dist/src/yaml/converter.test.js +0 -548
- package/dist/src/yaml/e2e.test.d.ts +0 -6
- package/dist/src/yaml/e2e.test.d.ts.map +0 -1
- package/dist/src/yaml/e2e.test.js +0 -446
- package/dist/src/yaml/env-resolver.d.ts +0 -218
- package/dist/src/yaml/env-resolver.d.ts.map +0 -1
- package/dist/src/yaml/env-resolver.js +0 -591
- package/dist/src/yaml/env-resolver.test.d.ts +0 -5
- package/dist/src/yaml/env-resolver.test.d.ts.map +0 -1
- package/dist/src/yaml/env-resolver.test.js +0 -502
- package/dist/src/yaml/every-build-log-witnesses-the-commit-on-disk.test.d.ts +0 -16
- package/dist/src/yaml/every-build-log-witnesses-the-commit-on-disk.test.d.ts.map +0 -1
- package/dist/src/yaml/every-build-log-witnesses-the-commit-on-disk.test.js +0 -126
- package/dist/src/yaml/fidelity-input-digest.d.ts +0 -37
- package/dist/src/yaml/fidelity-input-digest.d.ts.map +0 -1
- package/dist/src/yaml/fidelity-input-digest.js +0 -208
- package/dist/src/yaml/fidelity-input-digest.test.d.ts +0 -2
- package/dist/src/yaml/fidelity-input-digest.test.d.ts.map +0 -1
- package/dist/src/yaml/fidelity-input-digest.test.js +0 -167
- package/dist/src/yaml/fidelity-manifest.d.ts +0 -126
- package/dist/src/yaml/fidelity-manifest.d.ts.map +0 -1
- package/dist/src/yaml/fidelity-manifest.js +0 -134
- package/dist/src/yaml/fidelity-manifest.test.d.ts +0 -12
- package/dist/src/yaml/fidelity-manifest.test.d.ts.map +0 -1
- package/dist/src/yaml/fidelity-manifest.test.js +0 -251
- package/dist/src/yaml/interactive-prompts.d.ts +0 -71
- package/dist/src/yaml/interactive-prompts.d.ts.map +0 -1
- package/dist/src/yaml/interactive-prompts.js +0 -260
- package/dist/src/yaml/meta-helpers.d.ts +0 -28
- package/dist/src/yaml/meta-helpers.d.ts.map +0 -1
- package/dist/src/yaml/meta-helpers.js +0 -46
- package/dist/src/yaml/missing-env-handler.d.ts +0 -45
- package/dist/src/yaml/missing-env-handler.d.ts.map +0 -1
- package/dist/src/yaml/missing-env-handler.js +0 -64
- package/dist/src/yaml/parser.d.ts +0 -33
- package/dist/src/yaml/parser.d.ts.map +0 -1
- package/dist/src/yaml/parser.js +0 -148
- package/dist/src/yaml/parser.test.d.ts +0 -5
- package/dist/src/yaml/parser.test.d.ts.map +0 -1
- package/dist/src/yaml/parser.test.js +0 -83
- package/dist/src/yaml/pipeline-with-secrets.d.ts +0 -25
- package/dist/src/yaml/pipeline-with-secrets.d.ts.map +0 -1
- package/dist/src/yaml/pipeline-with-secrets.js +0 -76
- package/dist/src/yaml/platform-detector.d.ts +0 -83
- package/dist/src/yaml/platform-detector.d.ts.map +0 -1
- package/dist/src/yaml/platform-detector.js +0 -189
- package/dist/src/yaml/platform-detector.test.d.ts +0 -5
- package/dist/src/yaml/platform-detector.test.d.ts.map +0 -1
- package/dist/src/yaml/platform-detector.test.js +0 -525
- package/dist/src/yaml/preflight-validation.d.ts +0 -29
- package/dist/src/yaml/preflight-validation.d.ts.map +0 -1
- package/dist/src/yaml/preflight-validation.js +0 -21
- package/dist/src/yaml/secrets-manager.d.ts +0 -87
- package/dist/src/yaml/secrets-manager.d.ts.map +0 -1
- package/dist/src/yaml/secrets-manager.js +0 -230
- package/dist/src/yaml/shell-assignments.d.ts +0 -40
- package/dist/src/yaml/shell-assignments.d.ts.map +0 -1
- package/dist/src/yaml/shell-assignments.js +0 -77
- package/dist/src/yaml/step-validator-check-failure.test.d.ts +0 -24
- package/dist/src/yaml/step-validator-check-failure.test.d.ts.map +0 -1
- package/dist/src/yaml/step-validator-check-failure.test.js +0 -130
- package/dist/src/yaml/step-validator-self-assigned.test.d.ts +0 -23
- package/dist/src/yaml/step-validator-self-assigned.test.d.ts.map +0 -1
- package/dist/src/yaml/step-validator-self-assigned.test.js +0 -191
- package/dist/src/yaml/step-validator.d.ts +0 -67
- package/dist/src/yaml/step-validator.d.ts.map +0 -1
- package/dist/src/yaml/step-validator.js +0 -466
- package/dist/src/yaml/step-validator.test.d.ts +0 -18
- package/dist/src/yaml/step-validator.test.d.ts.map +0 -1
- package/dist/src/yaml/step-validator.test.js +0 -140
- package/dist/src/yaml/steps/android-sign.d.ts +0 -35
- package/dist/src/yaml/steps/android-sign.d.ts.map +0 -1
- package/dist/src/yaml/steps/android-sign.js +0 -147
- package/dist/src/yaml/steps/android-variant-resolution.test.d.ts +0 -2
- package/dist/src/yaml/steps/android-variant-resolution.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/android-variant-resolution.test.js +0 -260
- package/dist/src/yaml/steps/android-version.d.ts +0 -26
- package/dist/src/yaml/steps/android-version.d.ts.map +0 -1
- package/dist/src/yaml/steps/android-version.js +0 -128
- package/dist/src/yaml/steps/android-version.test.d.ts +0 -5
- package/dist/src/yaml/steps/android-version.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/android-version.test.js +0 -196
- package/dist/src/yaml/steps/android.d.ts +0 -156
- package/dist/src/yaml/steps/android.d.ts.map +0 -1
- package/dist/src/yaml/steps/android.js +0 -1092
- package/dist/src/yaml/steps/app-store-deploy.d.ts +0 -48
- package/dist/src/yaml/steps/app-store-deploy.d.ts.map +0 -1
- package/dist/src/yaml/steps/app-store-deploy.js +0 -167
- package/dist/src/yaml/steps/base.d.ts +0 -263
- package/dist/src/yaml/steps/base.d.ts.map +0 -1
- package/dist/src/yaml/steps/base.js +0 -380
- package/dist/src/yaml/steps/bitrise-android-tools.d.ts +0 -26
- package/dist/src/yaml/steps/bitrise-android-tools.d.ts.map +0 -1
- package/dist/src/yaml/steps/bitrise-android-tools.js +0 -200
- package/dist/src/yaml/steps/bitrise-android-tools.test.d.ts +0 -5
- package/dist/src/yaml/steps/bitrise-android-tools.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/bitrise-android-tools.test.js +0 -280
- package/dist/src/yaml/steps/bitrise-apk-info.d.ts +0 -22
- package/dist/src/yaml/steps/bitrise-apk-info.d.ts.map +0 -1
- package/dist/src/yaml/steps/bitrise-apk-info.js +0 -144
- package/dist/src/yaml/steps/bitrise-apk-info.test.d.ts +0 -5
- package/dist/src/yaml/steps/bitrise-apk-info.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/bitrise-apk-info.test.js +0 -331
- package/dist/src/yaml/steps/bitrise-slack.d.ts +0 -49
- package/dist/src/yaml/steps/bitrise-slack.d.ts.map +0 -1
- package/dist/src/yaml/steps/bitrise-slack.js +0 -280
- package/dist/src/yaml/steps/bitrise-slack.test.d.ts +0 -5
- package/dist/src/yaml/steps/bitrise-slack.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/bitrise-slack.test.js +0 -484
- package/dist/src/yaml/steps/bitrise-ssh.d.ts +0 -27
- package/dist/src/yaml/steps/bitrise-ssh.d.ts.map +0 -1
- package/dist/src/yaml/steps/bitrise-ssh.js +0 -134
- package/dist/src/yaml/steps/bitrise-ssh.test.d.ts +0 -5
- package/dist/src/yaml/steps/bitrise-ssh.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/bitrise-ssh.test.js +0 -205
- package/dist/src/yaml/steps/cache-pull-daemon.test.d.ts +0 -27
- package/dist/src/yaml/steps/cache-pull-daemon.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/cache-pull-daemon.test.js +0 -212
- package/dist/src/yaml/steps/cache-pull-restore-roots.test.d.ts +0 -42
- package/dist/src/yaml/steps/cache-pull-restore-roots.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/cache-pull-restore-roots.test.js +0 -209
- package/dist/src/yaml/steps/cache-push-daemon.test.d.ts +0 -27
- package/dist/src/yaml/steps/cache-push-daemon.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/cache-push-daemon.test.js +0 -171
- package/dist/src/yaml/steps/cache.d.ts +0 -59
- package/dist/src/yaml/steps/cache.d.ts.map +0 -1
- package/dist/src/yaml/steps/cache.js +0 -1027
- package/dist/src/yaml/steps/capture-injection.d.ts +0 -30
- package/dist/src/yaml/steps/capture-injection.d.ts.map +0 -1
- package/dist/src/yaml/steps/capture-injection.js +0 -88
- package/dist/src/yaml/steps/capture-injection.test.d.ts +0 -2
- package/dist/src/yaml/steps/capture-injection.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/capture-injection.test.js +0 -163
- package/dist/src/yaml/steps/cocoapods-deployment-floor.d.ts +0 -42
- package/dist/src/yaml/steps/cocoapods-deployment-floor.d.ts.map +0 -1
- package/dist/src/yaml/steps/cocoapods-deployment-floor.js +0 -140
- package/dist/src/yaml/steps/cocoapods-deployment-floor.test.d.ts +0 -11
- package/dist/src/yaml/steps/cocoapods-deployment-floor.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/cocoapods-deployment-floor.test.js +0 -176
- package/dist/src/yaml/steps/cocoapods-install-emits-valid-bash.test.d.ts +0 -22
- package/dist/src/yaml/steps/cocoapods-install-emits-valid-bash.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/cocoapods-install-emits-valid-bash.test.js +0 -97
- package/dist/src/yaml/steps/cocoapods-locked-bundler.test.d.ts +0 -17
- package/dist/src/yaml/steps/cocoapods-locked-bundler.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/cocoapods-locked-bundler.test.js +0 -282
- package/dist/src/yaml/steps/cocoapods-skip-if-absent.test.d.ts +0 -17
- package/dist/src/yaml/steps/cocoapods-skip-if-absent.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/cocoapods-skip-if-absent.test.js +0 -132
- package/dist/src/yaml/steps/envstore-loader.test.d.ts +0 -15
- package/dist/src/yaml/steps/envstore-loader.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/envstore-loader.test.js +0 -143
- package/dist/src/yaml/steps/fastlane.d.ts +0 -27
- package/dist/src/yaml/steps/fastlane.d.ts.map +0 -1
- package/dist/src/yaml/steps/fastlane.js +0 -79
- package/dist/src/yaml/steps/fidelity-aspect-guard.d.ts +0 -53
- package/dist/src/yaml/steps/fidelity-aspect-guard.d.ts.map +0 -1
- package/dist/src/yaml/steps/fidelity-aspect-guard.js +0 -72
- package/dist/src/yaml/steps/fidelity-aspect-guard.test.d.ts +0 -11
- package/dist/src/yaml/steps/fidelity-aspect-guard.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/fidelity-aspect-guard.test.js +0 -50
- package/dist/src/yaml/steps/fidelity-reference-provenance.d.ts +0 -87
- package/dist/src/yaml/steps/fidelity-reference-provenance.d.ts.map +0 -1
- package/dist/src/yaml/steps/fidelity-reference-provenance.js +0 -111
- package/dist/src/yaml/steps/fidelity-reference-provenance.test.d.ts +0 -22
- package/dist/src/yaml/steps/fidelity-reference-provenance.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/fidelity-reference-provenance.test.js +0 -118
- package/dist/src/yaml/steps/file.d.ts +0 -52
- package/dist/src/yaml/steps/file.d.ts.map +0 -1
- package/dist/src/yaml/steps/file.js +0 -108
- package/dist/src/yaml/steps/flutter.d.ts +0 -63
- package/dist/src/yaml/steps/flutter.d.ts.map +0 -1
- package/dist/src/yaml/steps/flutter.js +0 -215
- package/dist/src/yaml/steps/git-clone-names-the-inputs-it-ignores.test.d.ts +0 -16
- package/dist/src/yaml/steps/git-clone-names-the-inputs-it-ignores.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/git-clone-names-the-inputs-it-ignores.test.js +0 -127
- package/dist/src/yaml/steps/git-clone.d.ts +0 -32
- package/dist/src/yaml/steps/git-clone.d.ts.map +0 -1
- package/dist/src/yaml/steps/git-clone.js +0 -171
- package/dist/src/yaml/steps/git-fetch-retry-exec.test.d.ts +0 -10
- package/dist/src/yaml/steps/git-fetch-retry-exec.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/git-fetch-retry-exec.test.js +0 -162
- package/dist/src/yaml/steps/git-fetch-retry.d.ts +0 -62
- package/dist/src/yaml/steps/git-fetch-retry.d.ts.map +0 -1
- package/dist/src/yaml/steps/git-fetch-retry.js +0 -155
- package/dist/src/yaml/steps/git-fetch-retry.test.d.ts +0 -5
- package/dist/src/yaml/steps/git-fetch-retry.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/git-fetch-retry.test.js +0 -86
- package/dist/src/yaml/steps/google-play-deploy.d.ts +0 -37
- package/dist/src/yaml/steps/google-play-deploy.d.ts.map +0 -1
- package/dist/src/yaml/steps/google-play-deploy.js +0 -193
- package/dist/src/yaml/steps/google-play-deploy.test.d.ts +0 -5
- package/dist/src/yaml/steps/google-play-deploy.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/google-play-deploy.test.js +0 -310
- package/dist/src/yaml/steps/gradle-memory.d.ts +0 -61
- package/dist/src/yaml/steps/gradle-memory.d.ts.map +0 -1
- package/dist/src/yaml/steps/gradle-memory.js +0 -386
- package/dist/src/yaml/steps/gradle-memory.test.d.ts +0 -2
- package/dist/src/yaml/steps/gradle-memory.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/gradle-memory.test.js +0 -344
- package/dist/src/yaml/steps/gradle-sdk-cmake.d.ts +0 -28
- package/dist/src/yaml/steps/gradle-sdk-cmake.d.ts.map +0 -1
- package/dist/src/yaml/steps/gradle-sdk-cmake.js +0 -107
- package/dist/src/yaml/steps/gradle-sdk-cmake.test.d.ts +0 -2
- package/dist/src/yaml/steps/gradle-sdk-cmake.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/gradle-sdk-cmake.test.js +0 -183
- package/dist/src/yaml/steps/index.d.ts +0 -10
- package/dist/src/yaml/steps/index.d.ts.map +0 -1
- package/dist/src/yaml/steps/index.js +0 -1461
- package/dist/src/yaml/steps/ios-deps.d.ts +0 -78
- package/dist/src/yaml/steps/ios-deps.d.ts.map +0 -1
- package/dist/src/yaml/steps/ios-deps.js +0 -279
- package/dist/src/yaml/steps/ios-deps.test.d.ts +0 -5
- package/dist/src/yaml/steps/ios-deps.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/ios-deps.test.js +0 -90
- package/dist/src/yaml/steps/ios-signing.d.ts +0 -31
- package/dist/src/yaml/steps/ios-signing.d.ts.map +0 -1
- package/dist/src/yaml/steps/ios-signing.js +0 -144
- package/dist/src/yaml/steps/ios-version.d.ts +0 -47
- package/dist/src/yaml/steps/ios-version.d.ts.map +0 -1
- package/dist/src/yaml/steps/ios-version.js +0 -151
- package/dist/src/yaml/steps/java-home-version-spec.test.d.ts +0 -10
- package/dist/src/yaml/steps/java-home-version-spec.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/java-home-version-spec.test.js +0 -58
- package/dist/src/yaml/steps/linting.d.ts +0 -47
- package/dist/src/yaml/steps/linting.d.ts.map +0 -1
- package/dist/src/yaml/steps/linting.js +0 -148
- package/dist/src/yaml/steps/phase2.test.d.ts +0 -6
- package/dist/src/yaml/steps/phase2.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/phase2.test.js +0 -197
- package/dist/src/yaml/steps/phase3.test.d.ts +0 -5
- package/dist/src/yaml/steps/phase3.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/phase3.test.js +0 -144
- package/dist/src/yaml/steps/phase4.test.d.ts +0 -5
- package/dist/src/yaml/steps/phase4.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/phase4.test.js +0 -166
- package/dist/src/yaml/steps/phase5.test.d.ts +0 -6
- package/dist/src/yaml/steps/phase5.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/phase5.test.js +0 -263
- package/dist/src/yaml/steps/registry.d.ts +0 -88
- package/dist/src/yaml/steps/registry.d.ts.map +0 -1
- package/dist/src/yaml/steps/registry.js +0 -125
- package/dist/src/yaml/steps/registry.test.d.ts +0 -5
- package/dist/src/yaml/steps/registry.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/registry.test.js +0 -235
- package/dist/src/yaml/steps/release.d.ts +0 -50
- package/dist/src/yaml/steps/release.d.ts.map +0 -1
- package/dist/src/yaml/steps/release.js +0 -154
- package/dist/src/yaml/steps/render-post-processor.d.ts +0 -100
- package/dist/src/yaml/steps/render-post-processor.d.ts.map +0 -1
- package/dist/src/yaml/steps/render-post-processor.js +0 -270
- package/dist/src/yaml/steps/render-post-processor.test.d.ts +0 -13
- package/dist/src/yaml/steps/render-post-processor.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/render-post-processor.test.js +0 -220
- package/dist/src/yaml/steps/script.d.ts +0 -23
- package/dist/src/yaml/steps/script.d.ts.map +0 -1
- package/dist/src/yaml/steps/script.js +0 -63
- package/dist/src/yaml/steps/spec-validation.test.d.ts +0 -6
- package/dist/src/yaml/steps/spec-validation.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/spec-validation.test.js +0 -130
- package/dist/src/yaml/steps/steps.test.d.ts +0 -6
- package/dist/src/yaml/steps/steps.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/steps.test.js +0 -881
- package/dist/src/yaml/steps/structural-facts.d.ts +0 -992
- package/dist/src/yaml/steps/structural-facts.d.ts.map +0 -1
- package/dist/src/yaml/steps/structural-facts.js +0 -3276
- package/dist/src/yaml/steps/structural-facts.test.d.ts +0 -12
- package/dist/src/yaml/steps/structural-facts.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/structural-facts.test.js +0 -3039
- package/dist/src/yaml/steps/test-config.d.ts +0 -5
- package/dist/src/yaml/steps/test-config.d.ts.map +0 -1
- package/dist/src/yaml/steps/test-config.js +0 -25
- package/dist/src/yaml/steps/trim-align-corpus.test.d.ts +0 -28
- package/dist/src/yaml/steps/trim-align-corpus.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/trim-align-corpus.test.js +0 -383
- package/dist/src/yaml/steps/trim-align.d.ts +0 -87
- package/dist/src/yaml/steps/trim-align.d.ts.map +0 -1
- package/dist/src/yaml/steps/trim-align.js +0 -367
- package/dist/src/yaml/steps/trim-align.test.d.ts +0 -11
- package/dist/src/yaml/steps/trim-align.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/trim-align.test.js +0 -261
- package/dist/src/yaml/steps/ui-fidelity-preview-android.d.ts +0 -66
- package/dist/src/yaml/steps/ui-fidelity-preview-android.d.ts.map +0 -1
- package/dist/src/yaml/steps/ui-fidelity-preview-android.js +0 -251
- package/dist/src/yaml/steps/ui-fidelity-preview-android.test.d.ts +0 -13
- package/dist/src/yaml/steps/ui-fidelity-preview-android.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/ui-fidelity-preview-android.test.js +0 -302
- package/dist/src/yaml/steps/ui-fidelity-preview.d.ts +0 -134
- package/dist/src/yaml/steps/ui-fidelity-preview.d.ts.map +0 -1
- package/dist/src/yaml/steps/ui-fidelity-preview.js +0 -173
- package/dist/src/yaml/steps/ui-fidelity-preview.test.d.ts +0 -11
- package/dist/src/yaml/steps/ui-fidelity-preview.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/ui-fidelity-preview.test.js +0 -210
- package/dist/src/yaml/steps/ui-fidelity-render-android.d.ts +0 -155
- package/dist/src/yaml/steps/ui-fidelity-render-android.d.ts.map +0 -1
- package/dist/src/yaml/steps/ui-fidelity-render-android.js +0 -1389
- package/dist/src/yaml/steps/ui-fidelity-render-android.test.d.ts +0 -2
- package/dist/src/yaml/steps/ui-fidelity-render-android.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/ui-fidelity-render-android.test.js +0 -1106
- package/dist/src/yaml/steps/ui-fidelity-render.d.ts +0 -230
- package/dist/src/yaml/steps/ui-fidelity-render.d.ts.map +0 -1
- package/dist/src/yaml/steps/ui-fidelity-render.js +0 -1597
- package/dist/src/yaml/steps/ui-fidelity-render.test.d.ts +0 -18
- package/dist/src/yaml/steps/ui-fidelity-render.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/ui-fidelity-render.test.js +0 -1871
- package/dist/src/yaml/steps/xcode-app-product.d.ts +0 -90
- package/dist/src/yaml/steps/xcode-app-product.d.ts.map +0 -1
- package/dist/src/yaml/steps/xcode-app-product.js +0 -247
- package/dist/src/yaml/steps/xcode-app-product.test.d.ts +0 -2
- package/dist/src/yaml/steps/xcode-app-product.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/xcode-app-product.test.js +0 -202
- package/dist/src/yaml/steps/xcode-derived-data.test.d.ts +0 -30
- package/dist/src/yaml/steps/xcode-derived-data.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/xcode-derived-data.test.js +0 -279
- package/dist/src/yaml/steps/xcode-destination.d.ts +0 -47
- package/dist/src/yaml/steps/xcode-destination.d.ts.map +0 -1
- package/dist/src/yaml/steps/xcode-destination.js +0 -202
- package/dist/src/yaml/steps/xcode-destination.test.d.ts +0 -9
- package/dist/src/yaml/steps/xcode-destination.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/xcode-destination.test.js +0 -227
- package/dist/src/yaml/steps/xcode-new.test.d.ts +0 -5
- package/dist/src/yaml/steps/xcode-new.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/xcode-new.test.js +0 -211
- package/dist/src/yaml/steps/xcode-resolve-retry.test.d.ts +0 -9
- package/dist/src/yaml/steps/xcode-resolve-retry.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/xcode-resolve-retry.test.js +0 -146
- package/dist/src/yaml/steps/xcode-simulator-archs.d.ts +0 -53
- package/dist/src/yaml/steps/xcode-simulator-archs.d.ts.map +0 -1
- package/dist/src/yaml/steps/xcode-simulator-archs.js +0 -98
- package/dist/src/yaml/steps/xcode-simulator-archs.test.d.ts +0 -21
- package/dist/src/yaml/steps/xcode-simulator-archs.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/xcode-simulator-archs.test.js +0 -155
- package/dist/src/yaml/steps/xcode.d.ts +0 -230
- package/dist/src/yaml/steps/xcode.d.ts.map +0 -1
- package/dist/src/yaml/steps/xcode.js +0 -1350
- package/dist/src/yaml/types.d.ts +0 -76
- package/dist/src/yaml/types.d.ts.map +0 -1
- package/dist/src/yaml/types.js +0 -5
- package/dist/src/yaml/validation-types.d.ts +0 -102
- package/dist/src/yaml/validation-types.d.ts.map +0 -1
- package/dist/src/yaml/validation-types.js +0 -8
- package/dist/src/yaml/yaml-updater.d.ts +0 -24
- package/dist/src/yaml/yaml-updater.d.ts.map +0 -1
- package/dist/src/yaml/yaml-updater.js +0 -128
|
@@ -1,344 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Gradle's daemon heaps, fitted to the build machine; and a killed daemon,
|
|
3
|
-
* named as one.
|
|
4
|
-
*
|
|
5
|
-
* The fixtures are the `gradle.properties` of IacobIonut01/ReFra
|
|
6
|
-
* (`-Xmx8G`, inherited by the Kotlin daemon) and vitorpamplona/amethyst
|
|
7
|
-
* (`-Xmx6g` beside `kotlin.daemon.jvmargs=-Xmx8g`). Both died on a 10 GiB
|
|
8
|
-
* build machine with nothing in the log but "Gradle build daemon disappeared
|
|
9
|
-
* unexpectedly".
|
|
10
|
-
*
|
|
11
|
-
* The shell under test is the one that ships: it is executed here, not
|
|
12
|
-
* re-implemented.
|
|
13
|
-
*/
|
|
14
|
-
import { execFileSync, spawnSync } from "node:child_process";
|
|
15
|
-
import { chmodSync, copyFileSync, mkdirSync, mkdtempSync, rmSync, writeFileSync } from "node:fs";
|
|
16
|
-
import { tmpdir } from "node:os";
|
|
17
|
-
import { dirname, join } from "node:path";
|
|
18
|
-
import { fileURLToPath } from "node:url";
|
|
19
|
-
import { AndroidBuildForUITestingStepExecutor, AndroidLintStepExecutor, AndroidUnitTestStepExecutor, GradleBuildStepExecutor, } from "./android.js";
|
|
20
|
-
import { GRADLE_MEMORY_FUNCTIONS } from "./gradle-memory.js";
|
|
21
|
-
import { testConfig } from "./test-config.js";
|
|
22
|
-
const FIXTURES = join(dirname(fileURLToPath(import.meta.url)), "../../../test/fixtures/gradle-memory");
|
|
23
|
-
let dir;
|
|
24
|
-
beforeEach(() => {
|
|
25
|
-
dir = mkdtempSync(join(tmpdir(), "cibuild-gradle-memory-"));
|
|
26
|
-
});
|
|
27
|
-
afterEach(() => {
|
|
28
|
-
rmSync(dir, { recursive: true, force: true });
|
|
29
|
-
});
|
|
30
|
-
/** Run the shipped plan in `dir`, the way the step does, with a given memory. */
|
|
31
|
-
function plan(memMib, preferred = "", userHome = join(dir, "no-user-home")) {
|
|
32
|
-
const script = `${GRADLE_MEMORY_FUNCTIONS}
|
|
33
|
-
cibuild_gradle_memory_plan "$1" gradle.properties "$2/gradle.properties" "$3"
|
|
34
|
-
for a in "\${CIBUILD_GRADLE_MEMORY_ARGS[@]}"; do printf 'ARG %s\\n' "$a"; done
|
|
35
|
-
printf 'LINE %s\\n' "$CIBUILD_GRADLE_MEMORY_LINE"
|
|
36
|
-
printf 'SENTENCE %s\\n' "$CIBUILD_GRADLE_MEMORY_SENTENCE"`;
|
|
37
|
-
const out = execFileSync("bash", ["-c", script, "plan", memMib, userHome, preferred], {
|
|
38
|
-
cwd: dir,
|
|
39
|
-
encoding: "utf-8",
|
|
40
|
-
});
|
|
41
|
-
const lines = out.split("\n");
|
|
42
|
-
return {
|
|
43
|
-
args: lines.filter((l) => l.startsWith("ARG ")).map((l) => l.slice(4)),
|
|
44
|
-
line: (lines.find((l) => l.startsWith("LINE ")) ?? "").slice(5),
|
|
45
|
-
sentence: (lines.find((l) => l.startsWith("SENTENCE ")) ?? "").slice(9),
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
const TEN_GIB = "10240";
|
|
49
|
-
describe("cibuild_gradle_memory_plan", () => {
|
|
50
|
-
test("ReFra: -Xmx8G, inherited by the Kotlin daemon, is capped on a 10 GiB machine", () => {
|
|
51
|
-
copyFileSync(join(FIXTURES, "refra.gradle.properties"), join(dir, "gradle.properties"));
|
|
52
|
-
const p = plan(TEN_GIB);
|
|
53
|
-
// One heap, the whole 75% of 10 GiB, with Kotlin compiled in it: two
|
|
54
|
-
// daemons did not fit (split 60/40, ReFra's Kotlin daemon was lost
|
|
55
|
-
// mid-compile, and the fallback ran out of the Gradle daemon's heap).
|
|
56
|
-
expect(p.args).toEqual(["-Dorg.gradle.jvmargs=-Xmx7680m -Dfile.encoding=UTF-8", "-Pkotlin.compiler.execution.strategy=in-process"]);
|
|
57
|
-
expect(p.line).toContain("org.gradle.jvmargs=-Xmx8G -Dfile.encoding=UTF-8 at gradle.properties:9");
|
|
58
|
-
expect(p.line).toContain("16.0 GiB");
|
|
59
|
-
expect(p.line).toContain("Running with Gradle -Xmx7680m and Kotlin compiled in-process in it (kotlin.compiler.execution.strategy=in-process: one heap, not a Gradle and a Kotlin daemon), set on the command line.");
|
|
60
|
-
expect(p.sentence).toMatch(/^The build machine has 10\.0 GiB; this build's Gradle and Kotlin daemons asked for 16\.0 GiB/);
|
|
61
|
-
expect(p.sentence).toMatch(/This build ran them capped: Gradle -Xmx7680m and Kotlin compiled in-process in it .*\.$/);
|
|
62
|
-
});
|
|
63
|
-
test("ReFra on its 9.7 GiB build guest", () => {
|
|
64
|
-
copyFileSync(join(FIXTURES, "refra.gradle.properties"), join(dir, "gradle.properties"));
|
|
65
|
-
expect(plan("9933").args).toEqual(["-Dorg.gradle.jvmargs=-Xmx7424m -Dfile.encoding=UTF-8", "-Pkotlin.compiler.execution.strategy=in-process"]);
|
|
66
|
-
});
|
|
67
|
-
test("mifos-mobile on its 6 GiB mac guest gets the one heap too", () => {
|
|
68
|
-
writeFileSync(join(dir, "gradle.properties"), "org.gradle.jvmargs=-Xmx6g -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -XX:+UseParallelGC -XX:MaxMetaspaceSize=1g\n");
|
|
69
|
-
expect(plan("6144").args).toEqual([
|
|
70
|
-
// Its Kotlin daemon inherited the 1g Metaspace cap; in one JVM the cap holds both.
|
|
71
|
-
"-Dorg.gradle.jvmargs=-Xmx4608m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -XX:+UseParallelGC -XX:MaxMetaspaceSize=2048m",
|
|
72
|
-
"-Pkotlin.compiler.execution.strategy=in-process",
|
|
73
|
-
]);
|
|
74
|
-
});
|
|
75
|
-
// GetStream/whatsApp-clone-compose (nightly-baseline 79): Gradle capped at
|
|
76
|
-
// 512m Metaspace and Kotlin given 1g of its own; in-process, the one JVM
|
|
77
|
-
// ran out of Metaspace in compileDebugKotlin.
|
|
78
|
-
test("whatsApp-clone-compose: a Metaspace cap holds Kotlin's too once Kotlin is in-process", () => {
|
|
79
|
-
writeFileSync(join(dir, "gradle.properties"), "org.gradle.jvmargs=-Xmx4g -XX:+HeapDumpOnOutOfMemoryError -XX:+UseParallelGC -XX:MaxMetaspaceSize=512m -Dkotlin.daemon.jvm.options=-XX:MaxMetaspaceSize=1g -Dlint.nullness.ignore-deprecated=true\n");
|
|
80
|
-
const p = plan("9933");
|
|
81
|
-
expect(p.args).toEqual([
|
|
82
|
-
"-Dorg.gradle.jvmargs=-Xmx7424m -XX:+HeapDumpOnOutOfMemoryError -XX:+UseParallelGC -XX:MaxMetaspaceSize=1536m -Dkotlin.daemon.jvm.options=-XX:MaxMetaspaceSize=1g -Dlint.nullness.ignore-deprecated=true",
|
|
83
|
-
"-Pkotlin.compiler.execution.strategy=in-process",
|
|
84
|
-
]);
|
|
85
|
-
expect(p.line).toContain("with -XX:MaxMetaspaceSize=1536m (Gradle's 512m and Kotlin's 1024m, in one JVM now)");
|
|
86
|
-
});
|
|
87
|
-
test("a Kotlin daemon with no Metaspace of its own inherits Gradle's, and the cap doubles", () => {
|
|
88
|
-
writeFileSync(join(dir, "gradle.properties"), "org.gradle.jvmargs=-Xmx8g -XX:MaxMetaspaceSize=1g\n");
|
|
89
|
-
expect(plan(TEN_GIB).args[0]).toBe("-Dorg.gradle.jvmargs=-Xmx7680m -XX:MaxMetaspaceSize=2048m");
|
|
90
|
-
});
|
|
91
|
-
test("the one heap never goes below 512 MiB", () => {
|
|
92
|
-
writeFileSync(join(dir, "gradle.properties"), "org.gradle.jvmargs=-Xmx4g\n");
|
|
93
|
-
expect(plan("600").args).toEqual(["-Dorg.gradle.jvmargs=-Xmx512m", "-Pkotlin.compiler.execution.strategy=in-process"]);
|
|
94
|
-
});
|
|
95
|
-
test("amethyst: a Kotlin daemon with its own -Xmx is compiled in-process too, in one heap", () => {
|
|
96
|
-
copyFileSync(join(FIXTURES, "amethyst.gradle.properties"), join(dir, "gradle.properties"));
|
|
97
|
-
const p = plan(TEN_GIB);
|
|
98
|
-
expect(p.args).toEqual(["-Dorg.gradle.jvmargs=-Xmx7680m -Dfile.encoding=UTF-8", "-Pkotlin.compiler.execution.strategy=in-process"]);
|
|
99
|
-
expect(p.line).toContain("kotlin.daemon.jvmargs=-Xmx8g -XX:MaxMetaspaceSize=2g at gradle.properties:27");
|
|
100
|
-
expect(p.line).toContain("14.0 GiB");
|
|
101
|
-
});
|
|
102
|
-
test("heaps that fit are left alone, and nothing is printed", () => {
|
|
103
|
-
copyFileSync(join(FIXTURES, "refra.gradle.properties"), join(dir, "gradle.properties"));
|
|
104
|
-
const p = plan("65536");
|
|
105
|
-
expect(p.args).toEqual([]);
|
|
106
|
-
expect(p.line).toBe("");
|
|
107
|
-
expect(p.sentence).toContain("asked for 16.0 GiB");
|
|
108
|
-
});
|
|
109
|
-
test("a project that declares nothing gets Gradle's default and no cap", () => {
|
|
110
|
-
const p = plan(TEN_GIB);
|
|
111
|
-
expect(p.args).toEqual([]);
|
|
112
|
-
expect(p.sentence).toContain("Gradle's default -Xmx512m");
|
|
113
|
-
});
|
|
114
|
-
test("in-process Kotlin compilation has no Kotlin daemon to count", () => {
|
|
115
|
-
writeFileSync(join(dir, "gradle.properties"), "org.gradle.jvmargs=-Xmx4g\nkotlin.compiler.execution.strategy=in-process\n");
|
|
116
|
-
expect(plan("6144").args).toEqual([]);
|
|
117
|
-
expect(plan("4096").args).toEqual(["-Dorg.gradle.jvmargs=-Xmx3072m"]);
|
|
118
|
-
});
|
|
119
|
-
test("the Gradle user home's value wins over the project's, as in Gradle", () => {
|
|
120
|
-
writeFileSync(join(dir, "gradle.properties"), "org.gradle.jvmargs=-Xmx1g\n");
|
|
121
|
-
const home = join(dir, "home");
|
|
122
|
-
mkdirSync(home);
|
|
123
|
-
writeFileSync(join(home, "gradle.properties"), "org.gradle.jvmargs=-Xmx6g -XX:+UseParallelGC\n");
|
|
124
|
-
const p = plan(TEN_GIB, "", home);
|
|
125
|
-
expect(p.args).toEqual(["-Dorg.gradle.jvmargs=-Xmx7680m -XX:+UseParallelGC", "-Pkotlin.compiler.execution.strategy=in-process"]);
|
|
126
|
-
expect(p.line).toContain(`at ${home}/gradle.properties:1`);
|
|
127
|
-
});
|
|
128
|
-
test("JVM arguments the pipeline asks for replace the project's, and are still capped", () => {
|
|
129
|
-
copyFileSync(join(FIXTURES, "refra.gradle.properties"), join(dir, "gradle.properties"));
|
|
130
|
-
const fits = plan(TEN_GIB, "-Xmx2g -Dfile.encoding=UTF-8");
|
|
131
|
-
expect(fits.args).toEqual(["-Dorg.gradle.jvmargs=-Xmx2g -Dfile.encoding=UTF-8"]);
|
|
132
|
-
expect(fits.line).toContain("as the pipeline asks");
|
|
133
|
-
const capped = plan("4096", "-Xmx4g -Dfile.encoding=UTF-8");
|
|
134
|
-
expect(capped.args).toEqual(["-Dorg.gradle.jvmargs=-Xmx3072m -Dfile.encoding=UTF-8", "-Pkotlin.compiler.execution.strategy=in-process"]);
|
|
135
|
-
expect(capped.line).toContain("at the pipeline");
|
|
136
|
-
});
|
|
137
|
-
test("a value continued onto another line is left as it is, and says so", () => {
|
|
138
|
-
writeFileSync(join(dir, "gradle.properties"), "org.gradle.jvmargs=-Xmx12g \\\n -Dfile.encoding=UTF-8\n");
|
|
139
|
-
const p = plan(TEN_GIB);
|
|
140
|
-
expect(p.args).toEqual([]);
|
|
141
|
-
expect(p.line).toContain("continues onto another line");
|
|
142
|
-
});
|
|
143
|
-
test("an unknown machine size caps nothing", () => {
|
|
144
|
-
copyFileSync(join(FIXTURES, "refra.gradle.properties"), join(dir, "gradle.properties"));
|
|
145
|
-
const p = plan("");
|
|
146
|
-
expect(p.args).toEqual([]);
|
|
147
|
-
expect(p.sentence).toContain("could not be read");
|
|
148
|
-
});
|
|
149
|
-
test("-Xmx in every unit, and a comment is not an assignment", () => {
|
|
150
|
-
writeFileSync(join(dir, "gradle.properties"), "# org.gradle.jvmargs=-Xmx64g\norg.gradle.jvmargs = -Xms1g -Xmx6144m\nkotlin.daemon.jvmargs:-Xmx4194304k\n");
|
|
151
|
-
const p = plan("8192");
|
|
152
|
-
expect(p.args).toEqual(["-Dorg.gradle.jvmargs=-Xms1g -Xmx6144m", "-Pkotlin.compiler.execution.strategy=in-process"]);
|
|
153
|
-
});
|
|
154
|
-
});
|
|
155
|
-
/** The plan, then the workers plan, as the step runs them. */
|
|
156
|
-
function workersPlan(memMib, maxWorkers) {
|
|
157
|
-
const script = `${GRADLE_MEMORY_FUNCTIONS}
|
|
158
|
-
cibuild_gradle_memory_plan "$1" gradle.properties "$2/gradle.properties" ""
|
|
159
|
-
cibuild_gradle_workers_plan "$3"
|
|
160
|
-
for a in "\${CIBUILD_GRADLE_MEMORY_ARGS[@]}"; do printf 'ARG %s\\n' "$a"; done
|
|
161
|
-
printf 'LINE %s\\n' "$CIBUILD_GRADLE_WORKERS_LINE"
|
|
162
|
-
printf 'SENTENCE %s\\n' "$CIBUILD_GRADLE_MEMORY_SENTENCE"`;
|
|
163
|
-
const out = execFileSync("bash", ["-c", script, "plan", memMib, join(dir, "no-user-home"), maxWorkers], {
|
|
164
|
-
cwd: dir,
|
|
165
|
-
encoding: "utf-8",
|
|
166
|
-
});
|
|
167
|
-
const lines = out.split("\n");
|
|
168
|
-
return {
|
|
169
|
-
args: lines.filter((l) => l.startsWith("ARG ")).map((l) => l.slice(4)),
|
|
170
|
-
line: (lines.find((l) => l.startsWith("LINE ")) ?? "").slice(5),
|
|
171
|
-
sentence: (lines.find((l) => l.startsWith("SENTENCE ")) ?? "").slice(9),
|
|
172
|
-
};
|
|
173
|
-
}
|
|
174
|
-
// ReFra was killed again with its heap capped: off-heap memory and parallel
|
|
175
|
-
// native compilers are past what a heap cap bounds. Its CI also sets
|
|
176
|
-
// org.gradle.workers.max=2, which the pipeline carries as max_workers.
|
|
177
|
-
// nightly-baseline 83: SEAbdulbasit/MusicApp-KMP pins its developer's JDK in
|
|
178
|
-
// gradle.properties, and Gradle refused to start.
|
|
179
|
-
describe("cibuild_gradle_java_home_plan", () => {
|
|
180
|
-
const javaHomePlan = (env) => {
|
|
181
|
-
const out = execFileSync("bash", ["-c", `${GRADLE_MEMORY_FUNCTIONS}
|
|
182
|
-
CIBUILD_GRADLE_MEMORY_ARGS=()
|
|
183
|
-
cibuild_gradle_java_home_plan gradle.properties "$1/gradle.properties"
|
|
184
|
-
for a in "\${CIBUILD_GRADLE_MEMORY_ARGS[@]}"; do printf 'ARG %s\\n' "$a"; done
|
|
185
|
-
printf 'LINE %s\\n' "$CIBUILD_GRADLE_JAVA_HOME_LINE"`, "plan", join(dir, "no-user-home")], { cwd: dir, encoding: "utf-8", env: { PATH: process.env.PATH ?? "", ...env } });
|
|
186
|
-
const lines = out.split("\n");
|
|
187
|
-
return {
|
|
188
|
-
args: lines.filter((l) => l.startsWith("ARG ")).map((l) => l.slice(4)),
|
|
189
|
-
line: (lines.find((l) => l.startsWith("LINE ")) ?? "").slice(5),
|
|
190
|
-
};
|
|
191
|
-
};
|
|
192
|
-
test("a pinned JDK that is not on this machine is replaced by the build's", () => {
|
|
193
|
-
writeFileSync(join(dir, "gradle.properties"), "org.gradle.jvmargs=-Xmx2g\norg.gradle.java.home=/Users/abdulbasit/Library/Java/JavaVirtualMachines/corretto-21.0.3/Contents/Home\n");
|
|
194
|
-
const p = javaHomePlan({ JAVA_HOME: dir });
|
|
195
|
-
expect(p.args).toEqual([`-Dorg.gradle.java.home=${dir}`]);
|
|
196
|
-
expect(p.line).toContain("org.gradle.java.home=/Users/abdulbasit/Library/Java/JavaVirtualMachines/corretto-21.0.3/Contents/Home at gradle.properties:2 is not on this machine");
|
|
197
|
-
});
|
|
198
|
-
test("a pinned JDK that exists is left alone", () => {
|
|
199
|
-
writeFileSync(join(dir, "gradle.properties"), `org.gradle.java.home=${dir}\n`);
|
|
200
|
-
expect(javaHomePlan({ JAVA_HOME: "/elsewhere" }).args).toEqual([]);
|
|
201
|
-
});
|
|
202
|
-
test("no pin, nothing", () => {
|
|
203
|
-
writeFileSync(join(dir, "gradle.properties"), "org.gradle.jvmargs=-Xmx2g\n");
|
|
204
|
-
expect(javaHomePlan({ JAVA_HOME: dir })).toEqual({ args: [], line: "" });
|
|
205
|
-
});
|
|
206
|
-
});
|
|
207
|
-
describe("cibuild_gradle_workers_plan", () => {
|
|
208
|
-
test("ReFra: the worker count goes after the heap cap, and the sentence names it", () => {
|
|
209
|
-
copyFileSync(join(FIXTURES, "refra.gradle.properties"), join(dir, "gradle.properties"));
|
|
210
|
-
const p = workersPlan(TEN_GIB, "2");
|
|
211
|
-
expect(p.args).toEqual(["-Dorg.gradle.jvmargs=-Xmx7680m -Dfile.encoding=UTF-8", "-Pkotlin.compiler.execution.strategy=in-process", "--max-workers=2"]);
|
|
212
|
-
expect(p.line).toBe("Gradle memory: running with --max-workers=2, as the pipeline asks (set on the command line, over any org.gradle.workers.max).");
|
|
213
|
-
expect(p.sentence).toMatch(/This build ran them capped: Gradle -Xmx7680m and Kotlin compiled in-process in it .* Gradle ran with --max-workers=2\.$/);
|
|
214
|
-
});
|
|
215
|
-
test("heaps that fit still get the worker count", () => {
|
|
216
|
-
const p = workersPlan(TEN_GIB, "4");
|
|
217
|
-
expect(p.args).toEqual(["--max-workers=4"]);
|
|
218
|
-
});
|
|
219
|
-
test("nothing asked, nothing passed or printed", () => {
|
|
220
|
-
const p = workersPlan(TEN_GIB, "");
|
|
221
|
-
expect(p.args).toEqual([]);
|
|
222
|
-
expect(p.line).toBe("");
|
|
223
|
-
expect(p.sentence).not.toContain("max-workers");
|
|
224
|
-
});
|
|
225
|
-
test.each(["0", "02", "-1", "two", "2 --offline"])("%s is not a worker count, and says so", (value) => {
|
|
226
|
-
const p = workersPlan(TEN_GIB, value);
|
|
227
|
-
expect(p.args).toEqual([]);
|
|
228
|
-
expect(p.line).toBe(`Gradle memory: max_workers=${value} is not a positive whole number, so it is not passed and Gradle picks its own worker count.`);
|
|
229
|
-
});
|
|
230
|
-
});
|
|
231
|
-
/** A directory standing in for PATH, with a fake `dmesg` that prints `oom`. */
|
|
232
|
-
function fakeBin(oom) {
|
|
233
|
-
const bin = join(dir, "bin");
|
|
234
|
-
mkdirSync(bin, { recursive: true });
|
|
235
|
-
writeFileSync(join(bin, "dmesg"), `#!/bin/bash\nprintf '%s\\n' ${JSON.stringify(oom)}\n`);
|
|
236
|
-
chmodSync(join(bin, "dmesg"), 0o755);
|
|
237
|
-
return bin;
|
|
238
|
-
}
|
|
239
|
-
/** A `./gradlew` that records its arguments and fails the way it is told. */
|
|
240
|
-
function fakeGradlew(body) {
|
|
241
|
-
writeFileSync(join(dir, "gradlew"), `#!/bin/bash\nprintf '%s\\n' "$@" > "$(dirname "$0")/gradlew-args"\n${body}\n`);
|
|
242
|
-
chmodSync(join(dir, "gradlew"), 0o755);
|
|
243
|
-
}
|
|
244
|
-
function runStep(script, bin) {
|
|
245
|
-
writeFileSync(join(dir, "step.sh"), script);
|
|
246
|
-
return spawnSync("bash", [join(dir, "step.sh")], {
|
|
247
|
-
cwd: dir,
|
|
248
|
-
encoding: "utf-8",
|
|
249
|
-
env: { ...process.env, PATH: `${bin}:${process.env.PATH}`, JAVA_HOME: "", CIBUILD_SOURCE_DIR: "" },
|
|
250
|
-
});
|
|
251
|
-
}
|
|
252
|
-
describe("the Gradle steps", () => {
|
|
253
|
-
const OOM_LINE = "[ 412.9] Out of memory: Killed process 4242 (java) total-vm:14680064kB, anon-rss:9437184kB";
|
|
254
|
-
test("a killed daemon prints the kernel's out-of-memory lines and the sentence, and still fails", async () => {
|
|
255
|
-
copyFileSync(join(FIXTURES, "refra.gradle.properties"), join(dir, "gradle.properties"));
|
|
256
|
-
fakeGradlew('echo "FAILURE: Build failed with an exception."\necho "Gradle build daemon disappeared unexpectedly (it may have been killed or may have crashed)"\nexit 1');
|
|
257
|
-
const step = await new GradleBuildStepExecutor().execute({ gradle_task: "assembleDebug" }, {}, testConfig);
|
|
258
|
-
const run = runStep(step.script, fakeBin(OOM_LINE));
|
|
259
|
-
expect(run.status).toBe(1);
|
|
260
|
-
expect(run.stdout).toContain("Gradle memory: a Gradle daemon was killed rather than failing the build (exit 1).");
|
|
261
|
-
expect(run.stdout).toContain(` ${OOM_LINE}`);
|
|
262
|
-
expect(run.stdout).toMatch(/The build machine has [0-9.]+ GiB; this build's Gradle and Kotlin daemons asked for 16\.0 GiB/);
|
|
263
|
-
expect(run.stdout).not.toContain("Gradle build completed successfully");
|
|
264
|
-
});
|
|
265
|
-
test("a lost Kotlin daemon is named like a killed Gradle daemon", async () => {
|
|
266
|
-
copyFileSync(join(FIXTURES, "refra.gradle.properties"), join(dir, "gradle.properties"));
|
|
267
|
-
// ReFra, bld_bd0132cc5229acb16c54130f: KGP's words, then its fallback.
|
|
268
|
-
fakeGradlew('echo "e: Daemon compilation failed"\necho "org.jetbrains.kotlin.gradle.tasks.DaemonCrashedException: Connection to the Kotlin daemon has been unexpectedly lost. This might be caused by the daemon being killed by another process or the operating system, or by JVM crash."\necho "Using fallback strategy: Compile without Kotlin daemon"\nexit 1');
|
|
269
|
-
const step = await new GradleBuildStepExecutor().execute({ gradle_task: "assembleDebug" }, {}, testConfig);
|
|
270
|
-
const run = runStep(step.script, fakeBin(OOM_LINE));
|
|
271
|
-
expect(run.status).toBe(1);
|
|
272
|
-
expect(run.stdout).toContain("Gradle memory: the Kotlin daemon was lost mid-compile rather than the build failing (exit 1). Kotlin then compiled without it, in the Gradle daemon's heap.");
|
|
273
|
-
expect(run.stdout).toContain(` ${OOM_LINE}`);
|
|
274
|
-
expect(run.stdout).toMatch(/The build machine has [0-9.]+ GiB; this build's Gradle and Kotlin daemons asked for 16\.0 GiB/);
|
|
275
|
-
});
|
|
276
|
-
test("an ordinary failure says nothing about memory", async () => {
|
|
277
|
-
fakeGradlew('echo "Compilation error"\nexit 1');
|
|
278
|
-
const step = await new GradleBuildStepExecutor().execute({ gradle_task: "assembleDebug" }, {}, testConfig);
|
|
279
|
-
const run = runStep(step.script, fakeBin(OOM_LINE));
|
|
280
|
-
expect(run.status).toBe(1);
|
|
281
|
-
expect(run.stdout).not.toContain("Gradle memory:");
|
|
282
|
-
});
|
|
283
|
-
test("the pipeline's jvmargs reach Gradle as one argument, before the task", async () => {
|
|
284
|
-
fakeGradlew("exit 0");
|
|
285
|
-
const step = await new GradleBuildStepExecutor().execute({ gradle_task: "assembleDebug", gradle_options: "--stacktrace", jvmargs: "-Xmx256m -Dfile.encoding=UTF-8" }, {}, testConfig);
|
|
286
|
-
const run = runStep(step.script, fakeBin(""));
|
|
287
|
-
expect(run.status).toBe(0);
|
|
288
|
-
const args = execFileSync("cat", [join(dir, "gradlew-args")], { encoding: "utf-8" }).trim().split("\n");
|
|
289
|
-
expect(args).toEqual(["-Dorg.gradle.jvmargs=-Xmx256m -Dfile.encoding=UTF-8", "assembleDebug", "--stacktrace"]);
|
|
290
|
-
});
|
|
291
|
-
test("the pipeline's max_workers reach Gradle after the heap arguments, before the task", async () => {
|
|
292
|
-
fakeGradlew("exit 0");
|
|
293
|
-
const step = await new GradleBuildStepExecutor().execute(
|
|
294
|
-
// YAML reads `max_workers: 2` as a number.
|
|
295
|
-
{ gradle_task: "assembleDebug", gradle_options: "--stacktrace", jvmargs: "-Xmx256m", max_workers: 2 }, {}, testConfig);
|
|
296
|
-
const run = runStep(step.script, fakeBin(""));
|
|
297
|
-
expect(run.status).toBe(0);
|
|
298
|
-
expect(run.stdout).toContain("Gradle memory: running with --max-workers=2, as the pipeline asks");
|
|
299
|
-
const args = execFileSync("cat", [join(dir, "gradlew-args")], { encoding: "utf-8" }).trim().split("\n");
|
|
300
|
-
expect(args).toEqual(["-Dorg.gradle.jvmargs=-Xmx256m", "--max-workers=2", "assembleDebug", "--stacktrace"]);
|
|
301
|
-
});
|
|
302
|
-
test("a killed daemon's sentence names the worker count it ran with", async () => {
|
|
303
|
-
copyFileSync(join(FIXTURES, "refra.gradle.properties"), join(dir, "gradle.properties"));
|
|
304
|
-
fakeGradlew('echo "Gradle build daemon disappeared unexpectedly"\nexit 1');
|
|
305
|
-
const step = await new GradleBuildStepExecutor().execute({ gradle_task: "assembleDebug", max_workers: "2" }, {}, testConfig);
|
|
306
|
-
const run = runStep(step.script, fakeBin(OOM_LINE));
|
|
307
|
-
expect(run.status).toBe(1);
|
|
308
|
-
// The test machine's own memory decides whether a cap applied, so only the
|
|
309
|
-
// sentence's end is asserted.
|
|
310
|
-
expect(run.stdout).toMatch(/^The build machine has .*asked for 16\.0 GiB .* Gradle ran with --max-workers=2\.$/m);
|
|
311
|
-
});
|
|
312
|
-
test("every Gradle step passes max_workers to the plan", async () => {
|
|
313
|
-
const steps = [
|
|
314
|
-
await new GradleBuildStepExecutor().execute({ max_workers: 3 }, {}, testConfig),
|
|
315
|
-
await new AndroidLintStepExecutor().execute({ max_workers: 3 }, {}, testConfig),
|
|
316
|
-
await new AndroidUnitTestStepExecutor().execute({ max_workers: 3 }, {}, testConfig),
|
|
317
|
-
await new AndroidBuildForUITestingStepExecutor().execute({ max_workers: 3 }, {}, testConfig),
|
|
318
|
-
];
|
|
319
|
-
for (const step of steps) {
|
|
320
|
-
expect(step.script).toContain("cibuild_gradle_memory_cap '' '3'");
|
|
321
|
-
}
|
|
322
|
-
});
|
|
323
|
-
test("every Gradle step runs through the plan, and every one is valid bash", async () => {
|
|
324
|
-
const steps = [
|
|
325
|
-
await new GradleBuildStepExecutor().execute({}, {}, testConfig),
|
|
326
|
-
await new AndroidLintStepExecutor().execute({}, {}, testConfig),
|
|
327
|
-
await new AndroidUnitTestStepExecutor().execute({}, {}, testConfig),
|
|
328
|
-
await new AndroidBuildForUITestingStepExecutor().execute({}, {}, testConfig),
|
|
329
|
-
];
|
|
330
|
-
for (const step of steps) {
|
|
331
|
-
const script = step.script;
|
|
332
|
-
expect(script).toContain("cibuild_gradle_memory_cap '' ''");
|
|
333
|
-
execFileSync("bash", ["-n"], { input: script });
|
|
334
|
-
}
|
|
335
|
-
});
|
|
336
|
-
// cibuild's log is parsed for step-progress markers; nothing here may look
|
|
337
|
-
// like one.
|
|
338
|
-
test("no line the functions print can be taken for a step-progress marker", () => {
|
|
339
|
-
for (const line of GRADLE_MEMORY_FUNCTIONS.split("\n")) {
|
|
340
|
-
expect(line).not.toMatch(/INVARN_(STEP|PHASE)|▸/);
|
|
341
|
-
}
|
|
342
|
-
});
|
|
343
|
-
});
|
|
344
|
-
//# sourceMappingURL=gradle-memory.test.js.map
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The SDK CMake a build file pins, installed before Gradle runs.
|
|
3
|
-
*
|
|
4
|
-
* A module may pin its CMake (`android { externalNativeBuild { cmake {
|
|
5
|
-
* version = "3.31.6" } } }`). AGP downloads a pinned CMake it lacks, but only
|
|
6
|
-
* when it configures CMake, and a build's own Gradle task can need it first.
|
|
7
|
-
* IacobIonut01/ReFra's `buildHeifEncodeNative*` tasks run
|
|
8
|
-
* `scripts/native/build-heif-encode.sh`, which requires
|
|
9
|
-
* `$SDK/cmake/3.31.6/bin/cmake` and stops with "cmake 3.31.6 not found". The
|
|
10
|
-
* build images bake no SDK CMake, and a runner image cannot carry every
|
|
11
|
-
* version, so the version the project pins is installed with the SDK's own
|
|
12
|
-
* `sdkmanager` (its licences are accepted when the image is baked).
|
|
13
|
-
*
|
|
14
|
-
* Only literal versions inside a `cmake { }` block count. When there is no SDK
|
|
15
|
-
* or no sdkmanager, or the install fails, one line says so and the step goes
|
|
16
|
-
* on: AGP may still manage on its own.
|
|
17
|
-
*
|
|
18
|
-
* Written as shell functions so what ships is what the tests run. The shell
|
|
19
|
-
* is a raw string with no `${`, so every escape here is the one bash and awk
|
|
20
|
-
* read. Its lines start with "Android SDK:", never with a step-progress marker.
|
|
21
|
-
*/
|
|
22
|
-
export declare const GRADLE_SDK_CMAKE_FUNCTIONS: string;
|
|
23
|
-
/**
|
|
24
|
-
* The commands a Gradle step runs in the project directory before Gradle, so
|
|
25
|
-
* a CMake the project pins is in the SDK when its own tasks look for it.
|
|
26
|
-
*/
|
|
27
|
-
export declare function gradleSdkCmakeCommands(): string[];
|
|
28
|
-
//# sourceMappingURL=gradle-sdk-cmake.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gradle-sdk-cmake.d.ts","sourceRoot":"","sources":["../../../../src/yaml/steps/gradle-sdk-cmake.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,eAAO,MAAM,0BAA0B,QA6ErC,CAAC;AAEH;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,EAAE,CAEjD"}
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The SDK CMake a build file pins, installed before Gradle runs.
|
|
3
|
-
*
|
|
4
|
-
* A module may pin its CMake (`android { externalNativeBuild { cmake {
|
|
5
|
-
* version = "3.31.6" } } }`). AGP downloads a pinned CMake it lacks, but only
|
|
6
|
-
* when it configures CMake, and a build's own Gradle task can need it first.
|
|
7
|
-
* IacobIonut01/ReFra's `buildHeifEncodeNative*` tasks run
|
|
8
|
-
* `scripts/native/build-heif-encode.sh`, which requires
|
|
9
|
-
* `$SDK/cmake/3.31.6/bin/cmake` and stops with "cmake 3.31.6 not found". The
|
|
10
|
-
* build images bake no SDK CMake, and a runner image cannot carry every
|
|
11
|
-
* version, so the version the project pins is installed with the SDK's own
|
|
12
|
-
* `sdkmanager` (its licences are accepted when the image is baked).
|
|
13
|
-
*
|
|
14
|
-
* Only literal versions inside a `cmake { }` block count. When there is no SDK
|
|
15
|
-
* or no sdkmanager, or the install fails, one line says so and the step goes
|
|
16
|
-
* on: AGP may still manage on its own.
|
|
17
|
-
*
|
|
18
|
-
* Written as shell functions so what ships is what the tests run. The shell
|
|
19
|
-
* is a raw string with no `${`, so every escape here is the one bash and awk
|
|
20
|
-
* read. Its lines start with "Android SDK:", never with a step-progress marker.
|
|
21
|
-
*/
|
|
22
|
-
export const GRADLE_SDK_CMAKE_FUNCTIONS = String.raw `# The CMake versions the project's build files pin, one per line as
|
|
23
|
-
# "<file>:<line><TAB><version>", first pin of each version only. Build
|
|
24
|
-
# outputs, .git and .gradle are not read.
|
|
25
|
-
cibuild_pinned_cmake_versions() {
|
|
26
|
-
find . \( -name build -o -name .git -o -name .gradle -o -name node_modules \) -prune -o \
|
|
27
|
-
-type f \( -name build.gradle -o -name build.gradle.kts \) -print 2>/dev/null | sort |
|
|
28
|
-
while IFS= read -r f; do
|
|
29
|
-
awk -v file="$f" '
|
|
30
|
-
FNR == 1 { inblk = 0; depth = 0 }
|
|
31
|
-
{
|
|
32
|
-
line = $0
|
|
33
|
-
sub(/\/\/.*$/, "", line)
|
|
34
|
-
if (!inblk && line ~ /(^|[^A-Za-z0-9_])cmake[ \t]*\{/) {
|
|
35
|
-
inblk = 1; depth = 0
|
|
36
|
-
sub(/.*(^|[^A-Za-z0-9_])cmake[ \t]*\{/, "{", line)
|
|
37
|
-
}
|
|
38
|
-
if (!inblk) next
|
|
39
|
-
if (match(line, /(^|[^A-Za-z0-9_.])version[ \t]*=?[ \t]*["\047][0-9]+\.[0-9]+(\.[0-9]+)?["\047]/)) {
|
|
40
|
-
v = substr(line, RSTART, RLENGTH); sub(/^.*version/, "", v); gsub(/[^0-9.]/, "", v)
|
|
41
|
-
print file ":" FNR "\t" v
|
|
42
|
-
}
|
|
43
|
-
depth += gsub(/\{/, "{", line) - gsub(/\}/, "}", line)
|
|
44
|
-
if (depth <= 0) inblk = 0
|
|
45
|
-
}
|
|
46
|
-
' "$f"
|
|
47
|
-
done | awk -F '\t' '!seen[$2]++'
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
# The Android SDK: ANDROID_HOME, then ANDROID_SDK_ROOT, then local.properties'
|
|
51
|
-
# sdk.dir. Prints nothing when none names a directory.
|
|
52
|
-
cibuild_android_sdk_dir() {
|
|
53
|
-
local d
|
|
54
|
-
for d in "$ANDROID_HOME" "$ANDROID_SDK_ROOT"; do
|
|
55
|
-
if [ -n "$d" ] && [ -d "$d" ]; then echo "$d"; return 0; fi
|
|
56
|
-
done
|
|
57
|
-
if [ -f local.properties ]; then
|
|
58
|
-
d=$(sed -n 's/^[ \t]*sdk\.dir[ \t]*[=:][ \t]*//p' local.properties | tail -n 1 | sed 's/[ \t\r]*$//')
|
|
59
|
-
if [ -n "$d" ] && [ -d "$d" ]; then echo "$d"; return 0; fi
|
|
60
|
-
fi
|
|
61
|
-
return 0
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
# Installs every pinned CMake the SDK does not have. Never fails the step.
|
|
65
|
-
cibuild_install_pinned_cmake() {
|
|
66
|
-
local pins sdk sdkmanager at v out rc
|
|
67
|
-
pins=$(cibuild_pinned_cmake_versions)
|
|
68
|
-
[ -n "$pins" ] || return 0
|
|
69
|
-
sdk=$(cibuild_android_sdk_dir)
|
|
70
|
-
sdkmanager=""
|
|
71
|
-
if [ -n "$sdk" ] && [ -x "$sdk/cmdline-tools/latest/bin/sdkmanager" ]; then
|
|
72
|
-
sdkmanager="$sdk/cmdline-tools/latest/bin/sdkmanager"
|
|
73
|
-
elif [ -n "$sdk" ] && command -v sdkmanager >/dev/null 2>&1; then
|
|
74
|
-
sdkmanager=$(command -v sdkmanager)
|
|
75
|
-
fi
|
|
76
|
-
while IFS=' ' read -r at v; do
|
|
77
|
-
if [ -n "$sdk" ] && [ -x "$sdk/cmake/$v/bin/cmake" ]; then continue; fi
|
|
78
|
-
if [ -z "$sdk" ]; then
|
|
79
|
-
echo "Android SDK: $at pins cmake;$v, but no Android SDK was found (ANDROID_HOME, ANDROID_SDK_ROOT, local.properties sdk.dir), so it is not installed here."
|
|
80
|
-
continue
|
|
81
|
-
fi
|
|
82
|
-
if [ -z "$sdkmanager" ]; then
|
|
83
|
-
echo "Android SDK: $at pins cmake;$v, but $sdk has no sdkmanager, so it is not installed here."
|
|
84
|
-
continue
|
|
85
|
-
fi
|
|
86
|
-
echo "Android SDK: installing cmake;$v, which $at pins (externalNativeBuild cmake version) and this SDK does not have."
|
|
87
|
-
# Licences are answered from a process substitution, not a pipe, so
|
|
88
|
-
# neither set -e nor pipefail turns yes's SIGPIPE into a failure.
|
|
89
|
-
rc=0
|
|
90
|
-
out=$("$sdkmanager" "--sdk_root=$sdk" "cmake;$v" < <(yes 2>/dev/null) 2>&1) || rc=$?
|
|
91
|
-
if [ "$rc" -eq 0 ] && [ -x "$sdk/cmake/$v/bin/cmake" ]; then
|
|
92
|
-
echo "Android SDK: cmake;$v installed."
|
|
93
|
-
else
|
|
94
|
-
echo "Android SDK: installing cmake;$v failed (sdkmanager exit $rc); Gradle runs anyway:"
|
|
95
|
-
printf '%s\n' "$out" | tail -n 5 | sed 's/^/ /'
|
|
96
|
-
fi
|
|
97
|
-
done <<< "$pins"
|
|
98
|
-
return 0
|
|
99
|
-
}`;
|
|
100
|
-
/**
|
|
101
|
-
* The commands a Gradle step runs in the project directory before Gradle, so
|
|
102
|
-
* a CMake the project pins is in the SDK when its own tasks look for it.
|
|
103
|
-
*/
|
|
104
|
-
export function gradleSdkCmakeCommands() {
|
|
105
|
-
return ['', GRADLE_SDK_CMAKE_FUNCTIONS, '', 'cibuild_install_pinned_cmake'];
|
|
106
|
-
}
|
|
107
|
-
//# sourceMappingURL=gradle-sdk-cmake.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gradle-sdk-cmake.test.d.ts","sourceRoot":"","sources":["../../../../src/yaml/steps/gradle-sdk-cmake.test.ts"],"names":[],"mappings":""}
|