@invarn/cibuild 2.9.4 → 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 -1084
- 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/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 -311
- 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 -297
- 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 -253
- 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 -1340
- 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,42 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* After `pod install`: raise every pod target whose deployment target is below
|
|
3
|
-
* the app's own to the app's.
|
|
4
|
-
*
|
|
5
|
-
* A pod target below iOS 9 links ARC Lite, and Xcode 14.3 removed
|
|
6
|
-
* `libarclite`: `clang: error: SDK does not contain 'libarclite' at …
|
|
7
|
-
* libarclite_iphonesimulator.a; try increasing the minimum deployment
|
|
8
|
-
* target`. CocoaPods gives each pod target the deployment target its podspec
|
|
9
|
-
* declares, so an old pod (SwiftLinkPreview 3.1.0, `ios: '8.0'`) stops an app
|
|
10
|
-
* that itself targets iOS 12 (YuigaWada/MissCat, nightly-baseline issue 53).
|
|
11
|
-
* The usual fix lives in the app's own Podfile, a `post_install` that raises
|
|
12
|
-
* the pods; a repository whose Podfile has none cannot build under any
|
|
13
|
-
* current Xcode.
|
|
14
|
-
*
|
|
15
|
-
* RULED 2026-10-01 (Alex): raise every pod target below the app target's own
|
|
16
|
-
* deployment target to it, in the step, always. Never the app target, never
|
|
17
|
-
* past what the app promises: the floor is the lowest deployment target among
|
|
18
|
-
* the user targets CocoaPods integrated (each found by its `Pods-*.xcconfig`
|
|
19
|
-
* base configuration), so an extension that targets lower than the app keeps
|
|
20
|
-
* its pods buildable for it. A pod cannot run below the app that embeds it, so
|
|
21
|
-
* the raise changes nothing a user of the app could observe. Only the
|
|
22
|
-
* generated `Pods/*.xcodeproj` is edited; it is the checkout's, never
|
|
23
|
-
* committed back.
|
|
24
|
-
*
|
|
25
|
-
* Measured on a clone, Xcode 26.4, 2026-10-01: MissCat @ 574355469ebb, app
|
|
26
|
-
* targets MissCat and MissCatShare at 12.0, 74 pod build configurations raised
|
|
27
|
-
* from 8.0–9.3; SwiftLinkPreview then compiled at ios12.0-simulator and the
|
|
28
|
-
* build log never mentioned libarclite.
|
|
29
|
-
*
|
|
30
|
-
* Never a reason the step fails: a Ruby that cannot load `xcodeproj`, a Pods
|
|
31
|
-
* project it cannot read, a workspace it cannot find — each is a line in the
|
|
32
|
-
* log and the pods as CocoaPods left them.
|
|
33
|
-
*/
|
|
34
|
-
/** Ruby; argv[0] is the Pods directory. Prints what it read and what it raised. */
|
|
35
|
-
export declare const POD_DEPLOYMENT_FLOOR_SOURCE: string;
|
|
36
|
-
/**
|
|
37
|
-
* Bash lines that run the raise in the step's directory, after `pod install`.
|
|
38
|
-
* They expect `$USE_BUNDLE_EXEC` and `$BUNDLE_CMD` from the step, and never
|
|
39
|
-
* fail it.
|
|
40
|
-
*/
|
|
41
|
-
export declare function podDeploymentFloorLines(): string[];
|
|
42
|
-
//# sourceMappingURL=cocoapods-deployment-floor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cocoapods-deployment-floor.d.ts","sourceRoot":"","sources":["../../../../src/yaml/steps/cocoapods-deployment-floor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,mFAAmF;AACnF,eAAO,MAAM,2BAA2B,EAAE,MAgEzC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,EAAE,CAkClD"}
|
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* After `pod install`: raise every pod target whose deployment target is below
|
|
3
|
-
* the app's own to the app's.
|
|
4
|
-
*
|
|
5
|
-
* A pod target below iOS 9 links ARC Lite, and Xcode 14.3 removed
|
|
6
|
-
* `libarclite`: `clang: error: SDK does not contain 'libarclite' at …
|
|
7
|
-
* libarclite_iphonesimulator.a; try increasing the minimum deployment
|
|
8
|
-
* target`. CocoaPods gives each pod target the deployment target its podspec
|
|
9
|
-
* declares, so an old pod (SwiftLinkPreview 3.1.0, `ios: '8.0'`) stops an app
|
|
10
|
-
* that itself targets iOS 12 (YuigaWada/MissCat, nightly-baseline issue 53).
|
|
11
|
-
* The usual fix lives in the app's own Podfile, a `post_install` that raises
|
|
12
|
-
* the pods; a repository whose Podfile has none cannot build under any
|
|
13
|
-
* current Xcode.
|
|
14
|
-
*
|
|
15
|
-
* RULED 2026-10-01 (Alex): raise every pod target below the app target's own
|
|
16
|
-
* deployment target to it, in the step, always. Never the app target, never
|
|
17
|
-
* past what the app promises: the floor is the lowest deployment target among
|
|
18
|
-
* the user targets CocoaPods integrated (each found by its `Pods-*.xcconfig`
|
|
19
|
-
* base configuration), so an extension that targets lower than the app keeps
|
|
20
|
-
* its pods buildable for it. A pod cannot run below the app that embeds it, so
|
|
21
|
-
* the raise changes nothing a user of the app could observe. Only the
|
|
22
|
-
* generated `Pods/*.xcodeproj` is edited; it is the checkout's, never
|
|
23
|
-
* committed back.
|
|
24
|
-
*
|
|
25
|
-
* Measured on a clone, Xcode 26.4, 2026-10-01: MissCat @ 574355469ebb, app
|
|
26
|
-
* targets MissCat and MissCatShare at 12.0, 74 pod build configurations raised
|
|
27
|
-
* from 8.0–9.3; SwiftLinkPreview then compiled at ios12.0-simulator and the
|
|
28
|
-
* build log never mentioned libarclite.
|
|
29
|
-
*
|
|
30
|
-
* Never a reason the step fails: a Ruby that cannot load `xcodeproj`, a Pods
|
|
31
|
-
* project it cannot read, a workspace it cannot find — each is a line in the
|
|
32
|
-
* log and the pods as CocoaPods left them.
|
|
33
|
-
*/
|
|
34
|
-
/** Ruby; argv[0] is the Pods directory. Prints what it read and what it raised. */
|
|
35
|
-
export const POD_DEPLOYMENT_FLOOR_SOURCE = String.raw `
|
|
36
|
-
require 'xcodeproj'
|
|
37
|
-
pods_dir = File.expand_path(ARGV[0] || 'Pods')
|
|
38
|
-
pod_projects = Dir.glob(File.join(pods_dir, '*.xcodeproj'))
|
|
39
|
-
if pod_projects.empty?
|
|
40
|
-
puts "No Pods project under #{pods_dir}; pods' deployment targets left as they are"
|
|
41
|
-
exit 0
|
|
42
|
-
end
|
|
43
|
-
root = File.expand_path('..', pods_dir)
|
|
44
|
-
KEYS = %w[IPHONEOS_DEPLOYMENT_TARGET MACOSX_DEPLOYMENT_TARGET TVOS_DEPLOYMENT_TARGET WATCHOS_DEPLOYMENT_TARGET XROS_DEPLOYMENT_TARGET]
|
|
45
|
-
def version_of(value)
|
|
46
|
-
value.to_s.strip =~ /\A\d+(\.\d+){0,2}\z/ ? Gem::Version.new(value.to_s.strip) : nil
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
floors = {}
|
|
50
|
-
Dir.glob(File.join(root, '*.xcworkspace')).each do |ws|
|
|
51
|
-
Xcodeproj::Workspace.new_from_xcworkspace(ws).file_references.each do |ref|
|
|
52
|
-
path = File.expand_path(ref.absolute_path(File.expand_path('..', ws)))
|
|
53
|
-
next if path.start_with?(pods_dir + File::SEPARATOR) || !File.directory?(path)
|
|
54
|
-
project = Xcodeproj::Project.open(path)
|
|
55
|
-
project.native_targets.each do |target|
|
|
56
|
-
target.build_configurations.each do |config|
|
|
57
|
-
base = config.base_configuration_reference
|
|
58
|
-
next unless base && File.basename(base.path.to_s) =~ /\APods-.*\.xcconfig\z/
|
|
59
|
-
project_settings = project.build_configuration_list.build_settings(config.name) || {}
|
|
60
|
-
KEYS.each do |key|
|
|
61
|
-
v = version_of(config.build_settings[key]) || version_of(project_settings[key])
|
|
62
|
-
next unless v
|
|
63
|
-
floors[key] = v if floors[key].nil? || v < floors[key]
|
|
64
|
-
end
|
|
65
|
-
end
|
|
66
|
-
end
|
|
67
|
-
end
|
|
68
|
-
end
|
|
69
|
-
if floors.empty?
|
|
70
|
-
puts "No app target CocoaPods integrated declares a deployment target; pods' deployment targets left as they are"
|
|
71
|
-
exit 0
|
|
72
|
-
end
|
|
73
|
-
puts "The app's own deployment target: #{floors.map { |k, v| "#{k} #{v}" }.join(', ')}"
|
|
74
|
-
|
|
75
|
-
raised = []
|
|
76
|
-
pod_projects.each do |path|
|
|
77
|
-
project = Xcodeproj::Project.open(path)
|
|
78
|
-
changed = false
|
|
79
|
-
project.targets.each do |target|
|
|
80
|
-
next if target.name.start_with?('Pods-')
|
|
81
|
-
target.build_configurations.each do |config|
|
|
82
|
-
floors.each do |key, floor|
|
|
83
|
-
v = version_of(config.build_settings[key])
|
|
84
|
-
next unless v && v < floor
|
|
85
|
-
config.build_settings[key] = floor.to_s
|
|
86
|
-
raised << "#{target.name} #{v}"
|
|
87
|
-
changed = true
|
|
88
|
-
end
|
|
89
|
-
end
|
|
90
|
-
end
|
|
91
|
-
project.save if changed
|
|
92
|
-
end
|
|
93
|
-
if raised.empty?
|
|
94
|
-
puts "No pod target is below it"
|
|
95
|
-
else
|
|
96
|
-
names = raised.uniq
|
|
97
|
-
puts "Raised #{names.size} pod target(s) below the app's deployment target to it: #{names.join(', ')}"
|
|
98
|
-
end
|
|
99
|
-
`;
|
|
100
|
-
/**
|
|
101
|
-
* Bash lines that run the raise in the step's directory, after `pod install`.
|
|
102
|
-
* They expect `$USE_BUNDLE_EXEC` and `$BUNDLE_CMD` from the step, and never
|
|
103
|
-
* fail it.
|
|
104
|
-
*/
|
|
105
|
-
export function podDeploymentFloorLines() {
|
|
106
|
-
return [
|
|
107
|
-
"# Raise pods below the app's own deployment target to it — see",
|
|
108
|
-
'# cocoapods-deployment-floor.ts. Never fails the step.',
|
|
109
|
-
'if [ -d Pods ]; then',
|
|
110
|
-
' POD_FLOOR_SCRIPT="$(mktemp -t cibuild-pod-floor).rb"',
|
|
111
|
-
` cat > "$POD_FLOOR_SCRIPT" << 'CIBUILD_POD_FLOOR_EOF'`,
|
|
112
|
-
POD_DEPLOYMENT_FLOOR_SOURCE.trim(),
|
|
113
|
-
'CIBUILD_POD_FLOOR_EOF',
|
|
114
|
-
' # A Ruby that can load xcodeproj: the bundle CocoaPods ran from, the',
|
|
115
|
-
" # ruby on PATH, or a Homebrew pod wrapper's own interpreter and gems.",
|
|
116
|
-
' POD_FLOOR_RUN=""',
|
|
117
|
-
' if [ "$USE_BUNDLE_EXEC" = "true" ] && $BUNDLE_CMD exec ruby -e "require %q(xcodeproj)" >/dev/null 2>&1; then',
|
|
118
|
-
' POD_FLOOR_RUN="$BUNDLE_CMD exec ruby"',
|
|
119
|
-
' elif ruby -e "require %q(xcodeproj)" >/dev/null 2>&1; then',
|
|
120
|
-
' POD_FLOOR_RUN="ruby"',
|
|
121
|
-
' else',
|
|
122
|
-
' POD_WRAPPER="$(command -v pod 2>/dev/null || true)"',
|
|
123
|
-
' POD_GEM_HOME="$( [ -n "$POD_WRAPPER" ] && sed -n \'s/^GEM_HOME="\\([^"]*\\)".*/\\1/p\' "$POD_WRAPPER" | head -n 1)"',
|
|
124
|
-
' POD_REAL="$( [ -n "$POD_WRAPPER" ] && sed -n \'s/.*exec "\\([^"]*\\)".*/\\1/p\' "$POD_WRAPPER" | head -n 1)"',
|
|
125
|
-
' POD_RUBY="$( [ -n "$POD_REAL" ] && [ -f "$POD_REAL" ] && head -n 1 "$POD_REAL" | sed -n \'s/^#!//p\')"',
|
|
126
|
-
' if [ -n "$POD_GEM_HOME" ] && [ -n "$POD_RUBY" ] && GEM_HOME="$POD_GEM_HOME" $POD_RUBY -e "require %q(xcodeproj)" >/dev/null 2>&1; then',
|
|
127
|
-
' POD_FLOOR_RUN="env GEM_HOME=$POD_GEM_HOME $POD_RUBY"',
|
|
128
|
-
' fi',
|
|
129
|
-
' fi',
|
|
130
|
-
' if [ -n "$POD_FLOOR_RUN" ]; then',
|
|
131
|
-
' $POD_FLOOR_RUN "$POD_FLOOR_SCRIPT" Pods || echo "⚠️ Could not raise pods to the app\'s deployment target; left as CocoaPods wrote them"',
|
|
132
|
-
' else',
|
|
133
|
-
' echo "⚠️ No Ruby here loads xcodeproj; pods\' deployment targets left as CocoaPods wrote them"',
|
|
134
|
-
' fi',
|
|
135
|
-
' rm -f "$POD_FLOOR_SCRIPT"',
|
|
136
|
-
'fi',
|
|
137
|
-
'',
|
|
138
|
-
];
|
|
139
|
-
}
|
|
140
|
-
//# sourceMappingURL=cocoapods-deployment-floor.js.map
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Pods below the app's own deployment target are raised to it, after pod
|
|
3
|
-
* install, and nothing else moves. Witness: YuigaWada/MissCat (nightly-baseline
|
|
4
|
-
* issue 53) — SwiftLinkPreview 3.1.0 at iOS 8.0 linked libarclite, which
|
|
5
|
-
* Xcode 14.3 removed, in an app that targets iOS 12.0.
|
|
6
|
-
*
|
|
7
|
-
* The Ruby runs for real against projects the xcodeproj gem writes, when this
|
|
8
|
-
* machine's ruby can load it; otherwise those tests are skipped and say so.
|
|
9
|
-
*/
|
|
10
|
-
export {};
|
|
11
|
-
//# sourceMappingURL=cocoapods-deployment-floor.test.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cocoapods-deployment-floor.test.d.ts","sourceRoot":"","sources":["../../../../src/yaml/steps/cocoapods-deployment-floor.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
|
|
@@ -1,176 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Pods below the app's own deployment target are raised to it, after pod
|
|
3
|
-
* install, and nothing else moves. Witness: YuigaWada/MissCat (nightly-baseline
|
|
4
|
-
* issue 53) — SwiftLinkPreview 3.1.0 at iOS 8.0 linked libarclite, which
|
|
5
|
-
* Xcode 14.3 removed, in an app that targets iOS 12.0.
|
|
6
|
-
*
|
|
7
|
-
* The Ruby runs for real against projects the xcodeproj gem writes, when this
|
|
8
|
-
* machine's ruby can load it; otherwise those tests are skipped and say so.
|
|
9
|
-
*/
|
|
10
|
-
import { describe, test, expect } from '@jest/globals';
|
|
11
|
-
import { execFileSync } from 'node:child_process';
|
|
12
|
-
import { mkdtempSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
|
|
13
|
-
import { tmpdir } from 'node:os';
|
|
14
|
-
import { join } from 'node:path';
|
|
15
|
-
import { POD_DEPLOYMENT_FLOOR_SOURCE, podDeploymentFloorLines } from './cocoapods-deployment-floor.js';
|
|
16
|
-
import { CocoapodsInstallStepExecutor } from './ios-deps.js';
|
|
17
|
-
import { testConfig } from './test-config.js';
|
|
18
|
-
const hasXcodeproj = (() => {
|
|
19
|
-
try {
|
|
20
|
-
execFileSync('ruby', ['-e', 'require %q(xcodeproj)'], { stdio: 'ignore' });
|
|
21
|
-
return true;
|
|
22
|
-
}
|
|
23
|
-
catch {
|
|
24
|
-
return false;
|
|
25
|
-
}
|
|
26
|
-
})();
|
|
27
|
-
/**
|
|
28
|
-
* MissCat's shape: an app at 12.0 and a share extension at 11.0, both
|
|
29
|
-
* integrated by CocoaPods; pods at 8.0 (SwiftLinkPreview), 11.0 and 13.0; a
|
|
30
|
-
* library target in the app's project that CocoaPods does not integrate, at 8.0.
|
|
31
|
-
*/
|
|
32
|
-
const FIXTURE = String.raw `
|
|
33
|
-
require 'xcodeproj'
|
|
34
|
-
require 'fileutils'
|
|
35
|
-
dir = ARGV[0]
|
|
36
|
-
FileUtils.mkdir_p(File.join(dir, 'Pods', 'Target Support Files', 'Pods-App'))
|
|
37
|
-
app = Xcodeproj::Project.new(File.join(dir, 'App.xcodeproj'))
|
|
38
|
-
xc = app.new_file('Pods/Target Support Files/Pods-App/Pods-App.debug.xcconfig')
|
|
39
|
-
[['App', :application, '12.0', true], ['Share', :app_extension, '11.0', true], ['Unpodded', :framework, '8.0', false]].each do |name, type, dt, podded|
|
|
40
|
-
t = app.new_target(type, name, :ios, dt)
|
|
41
|
-
t.build_configurations.each { |c| c.base_configuration_reference = xc if podded }
|
|
42
|
-
end
|
|
43
|
-
app.save
|
|
44
|
-
pods = Xcodeproj::Project.new(File.join(dir, 'Pods', 'Pods.xcodeproj'))
|
|
45
|
-
pods.new_target(:framework, 'Pods-App', :ios, '12.0')
|
|
46
|
-
[['SwiftLinkPreview', '8.0'], ['MidPod', '11.0'], ['NewPod', '13.0']].each { |n, dt| pods.new_target(:framework, n, :ios, dt) }
|
|
47
|
-
pods.save
|
|
48
|
-
ws = Xcodeproj::Workspace.new(nil)
|
|
49
|
-
ws << 'App.xcodeproj'
|
|
50
|
-
ws << 'Pods/Pods.xcodeproj'
|
|
51
|
-
ws.save_as(File.join(dir, 'App.xcworkspace'))
|
|
52
|
-
`;
|
|
53
|
-
const DUMP = String.raw `
|
|
54
|
-
require 'xcodeproj'
|
|
55
|
-
p = Xcodeproj::Project.open(ARGV[0])
|
|
56
|
-
p.targets.each { |t| t.build_configurations.each { |c| puts "#{t.name} #{c.name} #{c.build_settings['IPHONEOS_DEPLOYMENT_TARGET']}" } }
|
|
57
|
-
`;
|
|
58
|
-
const ruby = (source, args, cwd) => {
|
|
59
|
-
const dir = mkdtempSync(join(tmpdir(), 'pod-floor-rb-'));
|
|
60
|
-
try {
|
|
61
|
-
const f = join(dir, 's.rb');
|
|
62
|
-
writeFileSync(f, source);
|
|
63
|
-
return execFileSync('ruby', [f, ...args], { encoding: 'utf8', cwd });
|
|
64
|
-
}
|
|
65
|
-
finally {
|
|
66
|
-
rmSync(dir, { recursive: true, force: true });
|
|
67
|
-
}
|
|
68
|
-
};
|
|
69
|
-
(hasXcodeproj ? describe : describe.skip)('the raise, on projects the xcodeproj gem wrote', () => {
|
|
70
|
-
const withFixture = (fn) => {
|
|
71
|
-
const dir = mkdtempSync(join(tmpdir(), 'pod-floor-'));
|
|
72
|
-
try {
|
|
73
|
-
ruby(FIXTURE, [dir]);
|
|
74
|
-
fn(dir);
|
|
75
|
-
}
|
|
76
|
-
finally {
|
|
77
|
-
rmSync(dir, { recursive: true, force: true });
|
|
78
|
-
}
|
|
79
|
-
};
|
|
80
|
-
const settings = (projectPath) => Object.fromEntries(ruby(DUMP, [projectPath])
|
|
81
|
-
.trim()
|
|
82
|
-
.split('\n')
|
|
83
|
-
.map((l) => {
|
|
84
|
-
const [t, c, v] = l.split(' ');
|
|
85
|
-
return [`${t} ${c}`, v];
|
|
86
|
-
}));
|
|
87
|
-
test('raises pods below the lowest integrated user target to it, and only those', () => {
|
|
88
|
-
withFixture((dir) => {
|
|
89
|
-
const out = ruby(POD_DEPLOYMENT_FLOOR_SOURCE, ['Pods'], dir);
|
|
90
|
-
const pods = settings(join(dir, 'Pods', 'Pods.xcodeproj'));
|
|
91
|
-
// The floor is the share extension's 11.0, the lowest the app promises.
|
|
92
|
-
expect(pods['SwiftLinkPreview Debug']).toBe('11.0');
|
|
93
|
-
expect(pods['SwiftLinkPreview Release']).toBe('11.0');
|
|
94
|
-
expect(pods['MidPod Debug']).toBe('11.0');
|
|
95
|
-
expect(pods['NewPod Debug']).toBe('13.0');
|
|
96
|
-
expect(pods['Pods-App Debug']).toBe('12.0');
|
|
97
|
-
expect(out).toContain('IPHONEOS_DEPLOYMENT_TARGET 11.0');
|
|
98
|
-
expect(out).toContain('Raised 1 pod target(s)');
|
|
99
|
-
expect(out).toContain('SwiftLinkPreview 8.0');
|
|
100
|
-
});
|
|
101
|
-
});
|
|
102
|
-
test("never touches the app's own project, not even a target CocoaPods does not integrate", () => {
|
|
103
|
-
withFixture((dir) => {
|
|
104
|
-
const before = readFileSync(join(dir, 'App.xcodeproj', 'project.pbxproj'), 'utf8');
|
|
105
|
-
ruby(POD_DEPLOYMENT_FLOOR_SOURCE, ['Pods'], dir);
|
|
106
|
-
expect(readFileSync(join(dir, 'App.xcodeproj', 'project.pbxproj'), 'utf8')).toBe(before);
|
|
107
|
-
// ...and the unintegrated 8.0 library is not the floor: the pod was raised.
|
|
108
|
-
expect(settings(join(dir, 'Pods', 'Pods.xcodeproj'))['SwiftLinkPreview Debug']).toBe('11.0');
|
|
109
|
-
});
|
|
110
|
-
});
|
|
111
|
-
test('a second run changes nothing', () => {
|
|
112
|
-
withFixture((dir) => {
|
|
113
|
-
ruby(POD_DEPLOYMENT_FLOOR_SOURCE, ['Pods'], dir);
|
|
114
|
-
const once = readFileSync(join(dir, 'Pods', 'Pods.xcodeproj', 'project.pbxproj'), 'utf8');
|
|
115
|
-
expect(ruby(POD_DEPLOYMENT_FLOOR_SOURCE, ['Pods'], dir)).toContain('No pod target is below it');
|
|
116
|
-
expect(readFileSync(join(dir, 'Pods', 'Pods.xcodeproj', 'project.pbxproj'), 'utf8')).toBe(once);
|
|
117
|
-
});
|
|
118
|
-
});
|
|
119
|
-
test('no workspace to read the app from: says so, raises nothing, exits 0', () => {
|
|
120
|
-
withFixture((dir) => {
|
|
121
|
-
rmSync(join(dir, 'App.xcworkspace'), { recursive: true, force: true });
|
|
122
|
-
const before = readFileSync(join(dir, 'Pods', 'Pods.xcodeproj', 'project.pbxproj'), 'utf8');
|
|
123
|
-
expect(ruby(POD_DEPLOYMENT_FLOOR_SOURCE, ['Pods'], dir)).toContain('left as they are');
|
|
124
|
-
expect(readFileSync(join(dir, 'Pods', 'Pods.xcodeproj', 'project.pbxproj'), 'utf8')).toBe(before);
|
|
125
|
-
});
|
|
126
|
-
});
|
|
127
|
-
});
|
|
128
|
-
if (!hasXcodeproj) {
|
|
129
|
-
test.skip('the raise on real projects — this ruby cannot load xcodeproj', () => { });
|
|
130
|
-
}
|
|
131
|
-
describe('cocoapods-install runs the raise after pod install', () => {
|
|
132
|
-
const script = async (inputs = {}) => (await new CocoapodsInstallStepExecutor().execute(inputs, {}, testConfig)).script;
|
|
133
|
-
test('after the pod command, before the step reports done', async () => {
|
|
134
|
-
const s = await script();
|
|
135
|
-
const raise = s.indexOf('cibuild-pod-floor');
|
|
136
|
-
expect(raise).toBeGreaterThan(s.indexOf('$POD_INVOCATION $POD_CMD'));
|
|
137
|
-
expect(raise).toBeLessThan(s.indexOf('✅ CocoaPods'));
|
|
138
|
-
});
|
|
139
|
-
test('carries the Ruby verbatim, in a quoted heredoc', async () => {
|
|
140
|
-
const s = await script();
|
|
141
|
-
expect(s).toContain(`<< 'CIBUILD_POD_FLOOR_EOF'`);
|
|
142
|
-
expect(s).toContain(POD_DEPLOYMENT_FLOOR_SOURCE.trim());
|
|
143
|
-
});
|
|
144
|
-
test('never fails the step', () => {
|
|
145
|
-
const lines = podDeploymentFloorLines().join('\n');
|
|
146
|
-
expect(lines).toContain('|| echo "⚠️ Could not raise pods');
|
|
147
|
-
expect(lines).not.toMatch(/\bexit 1\b/);
|
|
148
|
-
});
|
|
149
|
-
test('the emitted script is valid bash', async () => {
|
|
150
|
-
const dir = mkdtempSync(join(tmpdir(), 'pod-floor-sh-'));
|
|
151
|
-
try {
|
|
152
|
-
const f = join(dir, 's.sh');
|
|
153
|
-
writeFileSync(f, await script({ skip_if_absent: true }));
|
|
154
|
-
expect(() => execFileSync('bash', ['-n', f])).not.toThrow();
|
|
155
|
-
}
|
|
156
|
-
finally {
|
|
157
|
-
rmSync(dir, { recursive: true, force: true });
|
|
158
|
-
}
|
|
159
|
-
});
|
|
160
|
-
test('the emitted lines run end to end: the raise happens through the bash', () => {
|
|
161
|
-
if (!hasXcodeproj)
|
|
162
|
-
return;
|
|
163
|
-
const dir = mkdtempSync(join(tmpdir(), 'pod-floor-e2e-'));
|
|
164
|
-
try {
|
|
165
|
-
ruby(FIXTURE, [dir]);
|
|
166
|
-
const f = join(dir, 'raise.sh');
|
|
167
|
-
writeFileSync(f, ['USE_BUNDLE_EXEC=false', 'BUNDLE_CMD=bundle', ...podDeploymentFloorLines()].join('\n'));
|
|
168
|
-
const out = execFileSync('bash', [f], { cwd: dir, encoding: 'utf8' });
|
|
169
|
-
expect(out).toContain('Raised 1 pod target(s)');
|
|
170
|
-
}
|
|
171
|
-
finally {
|
|
172
|
-
rmSync(dir, { recursive: true, force: true });
|
|
173
|
-
}
|
|
174
|
-
});
|
|
175
|
-
});
|
|
176
|
-
//# sourceMappingURL=cocoapods-deployment-floor.test.js.map
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Every way of telling `cocoapods-install` where to look must emit shell that
|
|
3
|
-
* bash will actually parse.
|
|
4
|
-
*
|
|
5
|
-
* `podfile_path` did not. One stray quote —
|
|
6
|
-
*
|
|
7
|
-
* WORK_DIR="$(dirname '/path/to/Podfile')""
|
|
8
|
-
*
|
|
9
|
-
* — opened a double-quoted string that never closed, so bash swallowed the
|
|
10
|
-
* following line and died with `unexpected EOF while looking for matching '"'`.
|
|
11
|
-
* The input is documented in SPEC.md and in `steps/cocoapods-install.yml`, and
|
|
12
|
-
* it could never have worked. Nothing in Invarn's templates passes it, which is
|
|
13
|
-
* why no build ever reported it.
|
|
14
|
-
*
|
|
15
|
-
* No string assertion could have caught this, and the existing tests for the
|
|
16
|
-
* input asserted only that the rendered script *mentioned* the path. So this
|
|
17
|
-
* file parses the script instead of reading it, and it does so for **all four**
|
|
18
|
-
* working-directory branches rather than the one that was broken — the bug was
|
|
19
|
-
* in a branch nobody exercised, and the next one will be too.
|
|
20
|
-
*/
|
|
21
|
-
export {};
|
|
22
|
-
//# sourceMappingURL=cocoapods-install-emits-valid-bash.test.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cocoapods-install-emits-valid-bash.test.d.ts","sourceRoot":"","sources":["../../../../src/yaml/steps/cocoapods-install-emits-valid-bash.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG"}
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Every way of telling `cocoapods-install` where to look must emit shell that
|
|
3
|
-
* bash will actually parse.
|
|
4
|
-
*
|
|
5
|
-
* `podfile_path` did not. One stray quote —
|
|
6
|
-
*
|
|
7
|
-
* WORK_DIR="$(dirname '/path/to/Podfile')""
|
|
8
|
-
*
|
|
9
|
-
* — opened a double-quoted string that never closed, so bash swallowed the
|
|
10
|
-
* following line and died with `unexpected EOF while looking for matching '"'`.
|
|
11
|
-
* The input is documented in SPEC.md and in `steps/cocoapods-install.yml`, and
|
|
12
|
-
* it could never have worked. Nothing in Invarn's templates passes it, which is
|
|
13
|
-
* why no build ever reported it.
|
|
14
|
-
*
|
|
15
|
-
* No string assertion could have caught this, and the existing tests for the
|
|
16
|
-
* input asserted only that the rendered script *mentioned* the path. So this
|
|
17
|
-
* file parses the script instead of reading it, and it does so for **all four**
|
|
18
|
-
* working-directory branches rather than the one that was broken — the bug was
|
|
19
|
-
* in a branch nobody exercised, and the next one will be too.
|
|
20
|
-
*/
|
|
21
|
-
import { execFileSync } from 'node:child_process';
|
|
22
|
-
import { mkdtempSync, rmSync, writeFileSync } from 'node:fs';
|
|
23
|
-
import { tmpdir } from 'node:os';
|
|
24
|
-
import { join } from 'node:path';
|
|
25
|
-
import { describe, test, expect } from '@jest/globals';
|
|
26
|
-
import { CocoapodsInstallStepExecutor } from './ios-deps.js';
|
|
27
|
-
import { testConfig } from './test-config.js';
|
|
28
|
-
const render = async (inputs) => {
|
|
29
|
-
const result = await new CocoapodsInstallStepExecutor().execute(inputs, {}, testConfig);
|
|
30
|
-
return result.script;
|
|
31
|
-
};
|
|
32
|
-
/** Throws with bash's own diagnostic if the script does not parse. */
|
|
33
|
-
const parses = (script) => {
|
|
34
|
-
const dir = mkdtempSync(join(tmpdir(), 'cibuild-pods-syntax-'));
|
|
35
|
-
const path = join(dir, 'step.sh');
|
|
36
|
-
writeFileSync(path, script);
|
|
37
|
-
try {
|
|
38
|
-
execFileSync('bash', ['-n', path], { stdio: 'pipe' });
|
|
39
|
-
}
|
|
40
|
-
finally {
|
|
41
|
-
rmSync(dir, { recursive: true, force: true });
|
|
42
|
-
}
|
|
43
|
-
};
|
|
44
|
-
// The precedence the step documents: podfile_path, source_root_path,
|
|
45
|
-
// project_path, then $CIBUILD_SOURCE_DIR. One case per branch.
|
|
46
|
-
const branches = [
|
|
47
|
-
['podfile_path', { podfile_path: '/path/to/Podfile' }],
|
|
48
|
-
['source_root_path', { source_root_path: 'ios' }],
|
|
49
|
-
['project_path', { project_path: 'ios/MyApp.xcworkspace' }],
|
|
50
|
-
['neither — falls back to CIBUILD_SOURCE_DIR', {}],
|
|
51
|
-
];
|
|
52
|
-
describe('cocoapods-install emits bash that parses, on every path to a directory', () => {
|
|
53
|
-
for (const [name, inputs] of branches) {
|
|
54
|
-
test(name, async () => {
|
|
55
|
-
parses(await render(inputs));
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
// skip_if_absent rewrites the body of the `if [ ! -f "Podfile" ]` branch, so
|
|
59
|
-
// it is a second dimension over the same generated shell.
|
|
60
|
-
for (const [name, inputs] of branches) {
|
|
61
|
-
test(`${name}, with skip_if_absent`, async () => {
|
|
62
|
-
parses(await render({ ...inputs, skip_if_absent: true }));
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
test('pod update rather than install', async () => {
|
|
66
|
-
parses(await render({ source_root_path: 'ios', command: 'update' }));
|
|
67
|
-
});
|
|
68
|
-
test('a trailing flag on the command', async () => {
|
|
69
|
-
parses(await render({ project_path: 'ios/MyApp.xcodeproj', command: 'install --repo-update' }));
|
|
70
|
-
});
|
|
71
|
-
// A directory with a space in it is the case that makes quoting matter, and
|
|
72
|
-
// it is ordinary on iOS — "My App.xcworkspace".
|
|
73
|
-
test('a path containing a space', async () => {
|
|
74
|
-
parses(await render({ project_path: 'ios/My App.xcworkspace' }));
|
|
75
|
-
parses(await render({ podfile_path: '/Users/me/My Project/Podfile' }));
|
|
76
|
-
parses(await render({ source_root_path: 'My iOS Dir' }));
|
|
77
|
-
});
|
|
78
|
-
test('verbose logging', async () => {
|
|
79
|
-
parses(await render({ source_root_path: 'ios', verbose: true }));
|
|
80
|
-
});
|
|
81
|
-
});
|
|
82
|
-
describe('podfile_path still names the directory it was given', () => {
|
|
83
|
-
// Guarding the fix rather than only its syntax: the stray quote could have
|
|
84
|
-
// been "fixed" by deleting the line.
|
|
85
|
-
test('cds into the dirname of the Podfile', async () => {
|
|
86
|
-
const script = await render({ podfile_path: '/path/to/Podfile' });
|
|
87
|
-
expect(script).toContain(`WORK_DIR="$(dirname '/path/to/Podfile')"`);
|
|
88
|
-
expect(script).toContain('cd "$WORK_DIR"');
|
|
89
|
-
});
|
|
90
|
-
test('does not leave an unbalanced quote on the assignment', async () => {
|
|
91
|
-
const script = await render({ podfile_path: '/path/to/Podfile' });
|
|
92
|
-
const line = script.split('\n').find((l) => l.startsWith('WORK_DIR='));
|
|
93
|
-
expect(line).toBeDefined();
|
|
94
|
-
expect(line.split('"').length - 1).toBe(2);
|
|
95
|
-
});
|
|
96
|
-
});
|
|
97
|
-
//# sourceMappingURL=cocoapods-install-emits-valid-bash.test.js.map
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* A Gemfile.lock names the bundler that must run it, and the step has to run
|
|
3
|
-
* that one.
|
|
4
|
-
*
|
|
5
|
-
* `BUNDLED WITH 2.3.21` is routine. The step found `bundle` on PATH — on a mac
|
|
6
|
-
* guest that is /usr/bin/bundle, system Ruby 2.6 — and ran `bundle install`,
|
|
7
|
-
* and RubyGems refused to start any bundler but the locked one:
|
|
8
|
-
*
|
|
9
|
-
* Could not find 'bundler' (2.3.21) required by your Gemfile.lock.
|
|
10
|
-
* (Gem::GemNotFoundException)
|
|
11
|
-
*
|
|
12
|
-
* System Ruby cannot `gem install` without sudo either, so nothing in the step
|
|
13
|
-
* could recover. These tests run the generated script against stand-in `gem`,
|
|
14
|
-
* `bundle`, `pod` and `brew` executables and read back what it invoked.
|
|
15
|
-
*/
|
|
16
|
-
export {};
|
|
17
|
-
//# sourceMappingURL=cocoapods-locked-bundler.test.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cocoapods-locked-bundler.test.d.ts","sourceRoot":"","sources":["../../../../src/yaml/steps/cocoapods-locked-bundler.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG"}
|