@invarn/cibuild 2.9.6 → 2.9.8
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/a-missing-pinned-jdk-yields-for-every-gradle-run.test.d.ts +0 -2
- package/dist/src/yaml/steps/a-missing-pinned-jdk-yields-for-every-gradle-run.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/a-missing-pinned-jdk-yields-for-every-gradle-run.test.js +0 -96
- 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 -1100
- 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 -91
- package/dist/src/yaml/steps/gradle-memory.d.ts.map +0 -1
- package/dist/src/yaml/steps/gradle-memory.js +0 -495
- 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/kotlin-metadata-compiles-on-a-daemon.test.d.ts +0 -2
- package/dist/src/yaml/steps/kotlin-metadata-compiles-on-a-daemon.test.d.ts.map +0 -1
- package/dist/src/yaml/steps/kotlin-metadata-compiles-on-a-daemon.test.js +0 -139
- 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,205 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Unit tests for Bitrise activate-ssh-key step
|
|
3
|
-
*/
|
|
4
|
-
import { describe, test, expect } from '@jest/globals';
|
|
5
|
-
import { BitriseSSHStepExecutor } from './bitrise-ssh.js';
|
|
6
|
-
describe('BitriseSSHStepExecutor', () => {
|
|
7
|
-
const mockConfig = {
|
|
8
|
-
artifactsDir: '/ci/artifacts',
|
|
9
|
-
interpreters: {
|
|
10
|
-
python: '/usr/bin/python3',
|
|
11
|
-
ruby: '/usr/bin/ruby',
|
|
12
|
-
node: '/usr/bin/node',
|
|
13
|
-
bash: '/bin/bash',
|
|
14
|
-
},
|
|
15
|
-
maxConcurrentJobs: 4,
|
|
16
|
-
paths: {
|
|
17
|
-
buildsDir: '/ci/builds',
|
|
18
|
-
cacheDir: '/ci/cache',
|
|
19
|
-
derivedDataDir: '/ci/derived_data',
|
|
20
|
-
},
|
|
21
|
-
};
|
|
22
|
-
describe('Basic functionality', () => {
|
|
23
|
-
test('should create SSH activation script with default values', async () => {
|
|
24
|
-
const executor = new BitriseSSHStepExecutor();
|
|
25
|
-
const env = {
|
|
26
|
-
SSH_RSA_PRIVATE_KEY: '-----BEGIN RSA PRIVATE KEY-----\ntest-key-content\n-----END RSA PRIVATE KEY-----',
|
|
27
|
-
};
|
|
28
|
-
const result = await executor.execute({}, env, mockConfig);
|
|
29
|
-
expect(result.kind).toBe('script');
|
|
30
|
-
expect(result.name).toBe('activate-ssh-key');
|
|
31
|
-
expect(result.script).toContain('mkdir -p ~/.ssh');
|
|
32
|
-
expect(result.script).toContain('chmod 700 ~/.ssh');
|
|
33
|
-
expect(result.script).toContain('echo "${SSH_RSA_PRIVATE_KEY}" | tr \'\\r\' \'\\n\' > ~/.ssh/default.pem');
|
|
34
|
-
expect(result.script).toContain('chmod 600 ~/.ssh/default.pem');
|
|
35
|
-
});
|
|
36
|
-
test('should include SSH agent commands', async () => {
|
|
37
|
-
const executor = new BitriseSSHStepExecutor();
|
|
38
|
-
const env = {
|
|
39
|
-
SSH_RSA_PRIVATE_KEY: '-----BEGIN RSA PRIVATE KEY-----\ntest-key\n-----END RSA PRIVATE KEY-----',
|
|
40
|
-
};
|
|
41
|
-
const result = await executor.execute({}, env, mockConfig);
|
|
42
|
-
expect(result.script).toContain('eval "$(ssh-agent -s)"');
|
|
43
|
-
expect(result.script).toContain('ssh-add ~/.ssh/default.pem');
|
|
44
|
-
});
|
|
45
|
-
test('should configure SSH client settings', async () => {
|
|
46
|
-
const executor = new BitriseSSHStepExecutor();
|
|
47
|
-
const env = {
|
|
48
|
-
SSH_RSA_PRIVATE_KEY: 'test-key',
|
|
49
|
-
};
|
|
50
|
-
const result = await executor.execute({}, env, mockConfig);
|
|
51
|
-
expect(result.script).toContain('cat >> ~/.ssh/config');
|
|
52
|
-
expect(result.script).toContain('StrictHostKeyChecking no');
|
|
53
|
-
expect(result.script).toContain('UserKnownHostsFile=/dev/null');
|
|
54
|
-
expect(result.script).toContain('chmod 600 ~/.ssh/config');
|
|
55
|
-
});
|
|
56
|
-
});
|
|
57
|
-
describe('Custom SSH key path', () => {
|
|
58
|
-
test('should use custom ssh_key_save_path when provided', async () => {
|
|
59
|
-
const executor = new BitriseSSHStepExecutor();
|
|
60
|
-
const env = {
|
|
61
|
-
SSH_RSA_PRIVATE_KEY: 'test-key',
|
|
62
|
-
};
|
|
63
|
-
const inputs = {
|
|
64
|
-
ssh_key_save_path: '~/.ssh/custom_key',
|
|
65
|
-
};
|
|
66
|
-
const result = await executor.execute(inputs, env, mockConfig);
|
|
67
|
-
expect(result.script).toContain('echo "${SSH_RSA_PRIVATE_KEY}" | tr \'\\r\' \'\\n\' > ~/.ssh/custom_key');
|
|
68
|
-
expect(result.script).toContain('chmod 600 ~/.ssh/custom_key');
|
|
69
|
-
expect(result.script).toContain('ssh-add ~/.ssh/custom_key');
|
|
70
|
-
});
|
|
71
|
-
});
|
|
72
|
-
describe('Remove other identities', () => {
|
|
73
|
-
test('should remove other SSH identities when is_remove_other_identities is true', async () => {
|
|
74
|
-
const executor = new BitriseSSHStepExecutor();
|
|
75
|
-
const env = {
|
|
76
|
-
SSH_RSA_PRIVATE_KEY: 'test-key',
|
|
77
|
-
};
|
|
78
|
-
const inputs = {
|
|
79
|
-
is_remove_other_identities: 'true',
|
|
80
|
-
};
|
|
81
|
-
const result = await executor.execute(inputs, env, mockConfig);
|
|
82
|
-
expect(result.script).toContain('ssh-add -D');
|
|
83
|
-
});
|
|
84
|
-
test('should remove other SSH identities when is_remove_other_identities is yes', async () => {
|
|
85
|
-
const executor = new BitriseSSHStepExecutor();
|
|
86
|
-
const env = {
|
|
87
|
-
SSH_RSA_PRIVATE_KEY: 'test-key',
|
|
88
|
-
};
|
|
89
|
-
const inputs = {
|
|
90
|
-
is_remove_other_identities: 'yes',
|
|
91
|
-
};
|
|
92
|
-
const result = await executor.execute(inputs, env, mockConfig);
|
|
93
|
-
expect(result.script).toContain('ssh-add -D');
|
|
94
|
-
});
|
|
95
|
-
test('should not remove other identities when is_remove_other_identities is false', async () => {
|
|
96
|
-
const executor = new BitriseSSHStepExecutor();
|
|
97
|
-
const env = {
|
|
98
|
-
SSH_RSA_PRIVATE_KEY: 'test-key',
|
|
99
|
-
};
|
|
100
|
-
const inputs = {
|
|
101
|
-
is_remove_other_identities: 'false',
|
|
102
|
-
};
|
|
103
|
-
const result = await executor.execute(inputs, env, mockConfig);
|
|
104
|
-
expect(result.script).not.toContain('ssh-add -D');
|
|
105
|
-
});
|
|
106
|
-
test('should remove other identities by default', async () => {
|
|
107
|
-
const executor = new BitriseSSHStepExecutor();
|
|
108
|
-
const env = {
|
|
109
|
-
SSH_RSA_PRIVATE_KEY: 'test-key',
|
|
110
|
-
};
|
|
111
|
-
const result = await executor.execute({}, env, mockConfig);
|
|
112
|
-
// Default is 'true'
|
|
113
|
-
expect(result.script).toContain('ssh-add -D');
|
|
114
|
-
});
|
|
115
|
-
});
|
|
116
|
-
describe('Error handling', () => {
|
|
117
|
-
test('should throw error when SSH_RSA_PRIVATE_KEY is missing', async () => {
|
|
118
|
-
const executor = new BitriseSSHStepExecutor();
|
|
119
|
-
const env = {}; // No SSH key
|
|
120
|
-
await expect(executor.execute({}, env, mockConfig)).rejects.toThrow(/Missing environment variable: 'SSH_RSA_PRIVATE_KEY'/);
|
|
121
|
-
});
|
|
122
|
-
test('should include helpful error message for missing SSH key', async () => {
|
|
123
|
-
const executor = new BitriseSSHStepExecutor();
|
|
124
|
-
const env = {};
|
|
125
|
-
await expect(executor.execute({}, env, mockConfig)).rejects.toThrow(/SSH private key used for Git authentication/);
|
|
126
|
-
});
|
|
127
|
-
test('should suggest how to configure SSH key in error message', async () => {
|
|
128
|
-
const executor = new BitriseSSHStepExecutor();
|
|
129
|
-
const env = {};
|
|
130
|
-
await expect(executor.execute({}, env, mockConfig)).rejects.toThrow(/Store private key in CI secrets/);
|
|
131
|
-
});
|
|
132
|
-
});
|
|
133
|
-
describe('Script structure', () => {
|
|
134
|
-
test('should include bash error handling directives', async () => {
|
|
135
|
-
const executor = new BitriseSSHStepExecutor();
|
|
136
|
-
const env = {
|
|
137
|
-
SSH_RSA_PRIVATE_KEY: 'test-key',
|
|
138
|
-
};
|
|
139
|
-
const result = await executor.execute({}, env, mockConfig);
|
|
140
|
-
expect(result.script).toContain('#!/bin/bash');
|
|
141
|
-
expect(result.script).toContain('set -e');
|
|
142
|
-
expect(result.script).toContain('set -o pipefail');
|
|
143
|
-
});
|
|
144
|
-
test('should include informative messages', async () => {
|
|
145
|
-
const executor = new BitriseSSHStepExecutor();
|
|
146
|
-
const env = {
|
|
147
|
-
SSH_RSA_PRIVATE_KEY: 'test-key',
|
|
148
|
-
};
|
|
149
|
-
const result = await executor.execute({}, env, mockConfig);
|
|
150
|
-
expect(result.script).toContain('Bitrise activate-ssh-key step → CI Build SSH activation');
|
|
151
|
-
expect(result.script).toContain('Setting up SSH key for Git operations');
|
|
152
|
-
expect(result.script).toContain('SSH key activated successfully');
|
|
153
|
-
});
|
|
154
|
-
});
|
|
155
|
-
describe('Integration scenarios', () => {
|
|
156
|
-
test('should handle complex SSH key with newlines', async () => {
|
|
157
|
-
const executor = new BitriseSSHStepExecutor();
|
|
158
|
-
const env = {
|
|
159
|
-
SSH_RSA_PRIVATE_KEY: `-----BEGIN RSA PRIVATE KEY-----
|
|
160
|
-
MIIEpAIBAAKCAQEA1234567890abcdef
|
|
161
|
-
ghijklmnopqrstuvwxyz0123456789
|
|
162
|
-
-----END RSA PRIVATE KEY-----`,
|
|
163
|
-
};
|
|
164
|
-
const result = await executor.execute({}, env, mockConfig);
|
|
165
|
-
expect(result.script).toContain('echo "${SSH_RSA_PRIVATE_KEY}"');
|
|
166
|
-
expect(result.kind).toBe('script');
|
|
167
|
-
});
|
|
168
|
-
test('should work with custom path and remove identities disabled', async () => {
|
|
169
|
-
const executor = new BitriseSSHStepExecutor();
|
|
170
|
-
const env = {
|
|
171
|
-
SSH_RSA_PRIVATE_KEY: 'custom-key-content',
|
|
172
|
-
};
|
|
173
|
-
const inputs = {
|
|
174
|
-
ssh_key_save_path: '~/.ssh/my_ssh_key',
|
|
175
|
-
is_remove_other_identities: 'false',
|
|
176
|
-
};
|
|
177
|
-
const result = await executor.execute(inputs, env, mockConfig);
|
|
178
|
-
expect(result.script).toContain('echo "${SSH_RSA_PRIVATE_KEY}" | tr \'\\r\' \'\\n\' > ~/.ssh/my_ssh_key');
|
|
179
|
-
expect(result.script).toContain('chmod 600 ~/.ssh/my_ssh_key');
|
|
180
|
-
expect(result.script).toContain('ssh-add ~/.ssh/my_ssh_key');
|
|
181
|
-
expect(result.script).not.toContain('ssh-add -D');
|
|
182
|
-
});
|
|
183
|
-
});
|
|
184
|
-
describe('Bitrise compatibility', () => {
|
|
185
|
-
test('should support Bitrise environment variable naming', async () => {
|
|
186
|
-
const executor = new BitriseSSHStepExecutor();
|
|
187
|
-
const env = {
|
|
188
|
-
SSH_RSA_PRIVATE_KEY: 'bitrise-compatible-key',
|
|
189
|
-
};
|
|
190
|
-
const result = await executor.execute({}, env, mockConfig);
|
|
191
|
-
// Should reference the exact environment variable name
|
|
192
|
-
expect(result.script).toContain('${SSH_RSA_PRIVATE_KEY}');
|
|
193
|
-
});
|
|
194
|
-
test('should map to CI Build SSH activation pattern', async () => {
|
|
195
|
-
const executor = new BitriseSSHStepExecutor();
|
|
196
|
-
const env = {
|
|
197
|
-
SSH_RSA_PRIVATE_KEY: 'test-key',
|
|
198
|
-
};
|
|
199
|
-
const result = await executor.execute({}, env, mockConfig);
|
|
200
|
-
// Should include CI Build branding
|
|
201
|
-
expect(result.script).toContain('CI Build SSH activation');
|
|
202
|
-
});
|
|
203
|
-
});
|
|
204
|
-
});
|
|
205
|
-
//# sourceMappingURL=bitrise-ssh.test.js.map
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `cache-pull` over the daemon: a miss and a broken daemon are different things.
|
|
3
|
-
*
|
|
4
|
-
* `{ curl | zstd | tar; } 2>/dev/null` swallowed curl's message entirely, so a
|
|
5
|
-
* 401, a 400, a 503, a 500 and a daemon that was not listening all printed the
|
|
6
|
-
* same line as an empty cache:
|
|
7
|
-
*
|
|
8
|
-
* No cache found for key: pods-0fc6c3e8f03403bc5fb869d95e505969-HEAD
|
|
9
|
-
*
|
|
10
|
-
* Same class as the push-side defect in `27e05e5`, where `curl -f` threw the
|
|
11
|
-
* response body away so `invalid_cache_key` never reached the log. A cold cache
|
|
12
|
-
* is the normal case and must stay quiet; the point is only that a broken
|
|
13
|
-
* daemon stops looking like one.
|
|
14
|
-
*
|
|
15
|
-
* These tests RUN the generated script against a **real listener with the real
|
|
16
|
-
* curl**. Stubbing curl onto PATH cannot see this: the whole question is what
|
|
17
|
-
* the real curl reports and where it writes it, so a stub that emits the status
|
|
18
|
-
* itself would pass against a step that never asked for one.
|
|
19
|
-
*
|
|
20
|
-
* `zstd` and `tar` *are* stubbed, for two different reasons. zstd is not on
|
|
21
|
-
* every host, and without it the pipeline fails before curl is reached — which
|
|
22
|
-
* would make these pass vacuously. tar is stubbed because the generated script
|
|
23
|
-
* extracts with `-C /`: nothing under test here is worth writing to the root of
|
|
24
|
-
* the machine running the suite.
|
|
25
|
-
*/
|
|
26
|
-
export {};
|
|
27
|
-
//# sourceMappingURL=cache-pull-daemon.test.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cache-pull-daemon.test.d.ts","sourceRoot":"","sources":["../../../../src/yaml/steps/cache-pull-daemon.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG"}
|
|
@@ -1,212 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `cache-pull` over the daemon: a miss and a broken daemon are different things.
|
|
3
|
-
*
|
|
4
|
-
* `{ curl | zstd | tar; } 2>/dev/null` swallowed curl's message entirely, so a
|
|
5
|
-
* 401, a 400, a 503, a 500 and a daemon that was not listening all printed the
|
|
6
|
-
* same line as an empty cache:
|
|
7
|
-
*
|
|
8
|
-
* No cache found for key: pods-0fc6c3e8f03403bc5fb869d95e505969-HEAD
|
|
9
|
-
*
|
|
10
|
-
* Same class as the push-side defect in `27e05e5`, where `curl -f` threw the
|
|
11
|
-
* response body away so `invalid_cache_key` never reached the log. A cold cache
|
|
12
|
-
* is the normal case and must stay quiet; the point is only that a broken
|
|
13
|
-
* daemon stops looking like one.
|
|
14
|
-
*
|
|
15
|
-
* These tests RUN the generated script against a **real listener with the real
|
|
16
|
-
* curl**. Stubbing curl onto PATH cannot see this: the whole question is what
|
|
17
|
-
* the real curl reports and where it writes it, so a stub that emits the status
|
|
18
|
-
* itself would pass against a step that never asked for one.
|
|
19
|
-
*
|
|
20
|
-
* `zstd` and `tar` *are* stubbed, for two different reasons. zstd is not on
|
|
21
|
-
* every host, and without it the pipeline fails before curl is reached — which
|
|
22
|
-
* would make these pass vacuously. tar is stubbed because the generated script
|
|
23
|
-
* extracts with `-C /`: nothing under test here is worth writing to the root of
|
|
24
|
-
* the machine running the suite.
|
|
25
|
-
*/
|
|
26
|
-
import { describe, test, expect } from '@jest/globals';
|
|
27
|
-
import { execFile } from 'child_process';
|
|
28
|
-
import { createHash } from 'crypto';
|
|
29
|
-
import { mkdtempSync, writeFileSync, rmSync, mkdirSync, chmodSync } from 'fs';
|
|
30
|
-
import { createServer } from 'http';
|
|
31
|
-
import { join } from 'path';
|
|
32
|
-
import { tmpdir } from 'os';
|
|
33
|
-
import { promisify } from 'util';
|
|
34
|
-
import { CachePullStepExecutor } from './cache.js';
|
|
35
|
-
import { testConfigNoPeer } from './test-config.js';
|
|
36
|
-
/**
|
|
37
|
-
* Async on purpose. The listener below lives in this process, and
|
|
38
|
-
* `execFileSync` blocks the event loop — so it would never answer curl, every
|
|
39
|
-
* request would time out, and every case would look like a dead daemon
|
|
40
|
-
* whatever the test asked for.
|
|
41
|
-
*/
|
|
42
|
-
const run = promisify(execFile);
|
|
43
|
-
const CACHE_KEY = 'pods-abc123def456-release-1.4';
|
|
44
|
-
/**
|
|
45
|
-
* An explicit `cache_key` is prefixed with a project scope so two repositories
|
|
46
|
-
* writing the same key don't share a tarball. These fixtures run outside a git
|
|
47
|
-
* remote, so the step's shell hashes the literal `"no-remote"` — derived here
|
|
48
|
-
* rather than pasted, so it tracks the step.
|
|
49
|
-
*/
|
|
50
|
-
const PROJECT_SCOPE = createHash('sha256').update('no-remote', 'utf8').digest('hex').slice(0, 8);
|
|
51
|
-
const SCOPED_CACHE_KEY = `${PROJECT_SCOPE}-${CACHE_KEY}`;
|
|
52
|
-
async function listen(handler, paths) {
|
|
53
|
-
const server = createServer((req, res) => {
|
|
54
|
-
const path = req.url ?? '/';
|
|
55
|
-
paths.push(path);
|
|
56
|
-
const { status, body } = handler(path);
|
|
57
|
-
res.writeHead(status, { 'content-type': 'application/octet-stream' });
|
|
58
|
-
res.end(body);
|
|
59
|
-
});
|
|
60
|
-
const port = await new Promise((resolve, reject) => {
|
|
61
|
-
server.once('error', reject);
|
|
62
|
-
server.listen(0, '127.0.0.1', () => {
|
|
63
|
-
const address = server.address();
|
|
64
|
-
resolve(typeof address === 'object' && address !== null ? address.port : 0);
|
|
65
|
-
});
|
|
66
|
-
});
|
|
67
|
-
return { server, port };
|
|
68
|
-
}
|
|
69
|
-
async function runPull(options) {
|
|
70
|
-
const dir = mkdtempSync(join(tmpdir(), 'cibuild-pull-'));
|
|
71
|
-
const paths = [];
|
|
72
|
-
const { server, port } = await listen((path) => {
|
|
73
|
-
if (path.includes('/scope/')) {
|
|
74
|
-
return { status: options.scopeStatus ?? 404, body: '{"error":"no_cache_for_scope"}' };
|
|
75
|
-
}
|
|
76
|
-
const status = options.keyStatus === 'dead' ? 404 : options.keyStatus;
|
|
77
|
-
return {
|
|
78
|
-
status,
|
|
79
|
-
body: status === 200 ? 'a-tarball-shaped-payload' : '{"error":"cache_miss"}',
|
|
80
|
-
};
|
|
81
|
-
}, paths);
|
|
82
|
-
// A dead daemon is a port nothing answers on — the one the listener just
|
|
83
|
-
// released. Anything else and curl would be diagnosing the wrong failure.
|
|
84
|
-
if (options.keyStatus === 'dead') {
|
|
85
|
-
await new Promise((resolve) => server.close(() => resolve()));
|
|
86
|
-
}
|
|
87
|
-
try {
|
|
88
|
-
const bin = join(dir, 'bin');
|
|
89
|
-
mkdirSync(bin, { recursive: true });
|
|
90
|
-
writeFileSync(join(bin, 'zstd'), '#!/bin/bash\ncat\n', 'utf-8');
|
|
91
|
-
chmodSync(join(bin, 'zstd'), 0o755);
|
|
92
|
-
// Writes nothing: see the file header on `-C /`.
|
|
93
|
-
//
|
|
94
|
-
// It has to answer `-tf` as well as extract. A restore now stages the
|
|
95
|
-
// archive and reads its top-level names to decide which of them were
|
|
96
|
-
// recorded against `/` and which against the checkout, so a stub that only
|
|
97
|
-
// drained the stream made every hit look like a miss. Both project-relative
|
|
98
|
-
// names this suite can ask about are listed, so the split runs whichever
|
|
99
|
-
// form is under test. Where the bytes actually land is asserted against a
|
|
100
|
-
// real tar in `cache-pull-restore-roots.test.ts`.
|
|
101
|
-
writeFileSync(join(bin, 'tar'), [
|
|
102
|
-
'#!/bin/bash',
|
|
103
|
-
"case \"$1\" in",
|
|
104
|
-
" -tf) printf 'Pods/\\nPods/marker\\nnode_modules/\\n'; exit 0 ;;",
|
|
105
|
-
'esac',
|
|
106
|
-
'# `-xf -` must drain the stream, or the writer upstream dies of SIGPIPE',
|
|
107
|
-
'# and the pipeline reports a failure that never happened.',
|
|
108
|
-
'for a in "$@"; do',
|
|
109
|
-
' if [ "$a" = "-" ]; then cat > /dev/null; exit 0; fi',
|
|
110
|
-
'done',
|
|
111
|
-
'exit 0',
|
|
112
|
-
'',
|
|
113
|
-
].join('\n'), 'utf-8');
|
|
114
|
-
chmodSync(join(bin, 'tar'), 0o755);
|
|
115
|
-
// The preset form derives its key from a lockfile, so it needs one.
|
|
116
|
-
if (options.technology) {
|
|
117
|
-
writeFileSync(join(dir, 'package-lock.json'), '{"lockfileVersion":3}\n', 'utf-8');
|
|
118
|
-
}
|
|
119
|
-
const { script } = await new CachePullStepExecutor().execute(options.technology
|
|
120
|
-
? { technology: options.technology }
|
|
121
|
-
: { cache_key: CACHE_KEY, cache_paths: ['Pods'] }, {}, testConfigNoPeer);
|
|
122
|
-
const scriptPath = join(dir, '__cache_pull.sh');
|
|
123
|
-
writeFileSync(scriptPath, script, 'utf-8');
|
|
124
|
-
let stdout = '';
|
|
125
|
-
try {
|
|
126
|
-
const result = await run('bash', [scriptPath], {
|
|
127
|
-
cwd: dir,
|
|
128
|
-
encoding: 'utf-8',
|
|
129
|
-
env: {
|
|
130
|
-
...process.env,
|
|
131
|
-
PATH: `${bin}:${process.env.PATH}`,
|
|
132
|
-
CIBUILD_CACHE_DAEMON: `http://127.0.0.1:${port}`,
|
|
133
|
-
CIBUILD_CACHE_TOKEN: 'tok',
|
|
134
|
-
},
|
|
135
|
-
timeout: 20000,
|
|
136
|
-
});
|
|
137
|
-
stdout = String(result.stdout) + String(result.stderr);
|
|
138
|
-
}
|
|
139
|
-
catch (e) {
|
|
140
|
-
const err = e;
|
|
141
|
-
stdout = String(err.stdout ?? '') + String(err.stderr ?? '');
|
|
142
|
-
}
|
|
143
|
-
return { stdout, paths };
|
|
144
|
-
}
|
|
145
|
-
finally {
|
|
146
|
-
if (options.keyStatus !== 'dead') {
|
|
147
|
-
await new Promise((resolve) => server.close(() => resolve()));
|
|
148
|
-
}
|
|
149
|
-
rmSync(dir, { recursive: true, force: true });
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
describe('cache-pull with an explicit key, over the daemon', () => {
|
|
153
|
-
test('an empty cache is reported, and nothing else', async () => {
|
|
154
|
-
// 404 is the daemon's answer for `cache_miss`. The normal case on any
|
|
155
|
-
// first build: it must not start printing warnings.
|
|
156
|
-
const { stdout, paths } = await runPull({ keyStatus: 404 });
|
|
157
|
-
expect(paths).toEqual([`/cache/${SCOPED_CACHE_KEY}.tar.zst`]);
|
|
158
|
-
expect(stdout).toContain(`No cache found for key: ${SCOPED_CACHE_KEY}`);
|
|
159
|
-
expect(stdout).toContain('CACHE_SOURCE=cold');
|
|
160
|
-
expect(stdout).not.toContain('Warning');
|
|
161
|
-
});
|
|
162
|
-
test('an auth failure no longer looks like an empty cache', async () => {
|
|
163
|
-
const { stdout } = await runPull({ keyStatus: 401 });
|
|
164
|
-
expect(stdout).toContain('Warning: cache-pull could not restore');
|
|
165
|
-
expect(stdout).toContain('401');
|
|
166
|
-
// Still not fatal, and still cold: a build that cannot read a cache builds
|
|
167
|
-
// anyway. Only the silence is gone.
|
|
168
|
-
expect(stdout).toContain('CACHE_SOURCE=cold');
|
|
169
|
-
});
|
|
170
|
-
test.each([
|
|
171
|
-
['a rejected key', 400],
|
|
172
|
-
['a busy cache', 503],
|
|
173
|
-
['a daemon that broke', 500],
|
|
174
|
-
])('%s says so, with the status', async (_label, status) => {
|
|
175
|
-
const { stdout } = await runPull({ keyStatus: status });
|
|
176
|
-
expect(stdout).toContain('Warning: cache-pull could not restore');
|
|
177
|
-
expect(stdout).toContain(String(status));
|
|
178
|
-
});
|
|
179
|
-
test('a daemon that is not listening says so, rather than reporting a miss', async () => {
|
|
180
|
-
const { stdout } = await runPull({ keyStatus: 'dead' });
|
|
181
|
-
expect(stdout).toContain('Warning: cache-pull could not restore');
|
|
182
|
-
// curl's own words for it. There is no HTTP status to report — which is
|
|
183
|
-
// itself the distinction from every case above.
|
|
184
|
-
expect(stdout).toMatch(/Failed to connect|Couldn't connect|Connection refused/u);
|
|
185
|
-
});
|
|
186
|
-
test('a hit is still a hit', async () => {
|
|
187
|
-
const { stdout } = await runPull({ keyStatus: 200 });
|
|
188
|
-
expect(stdout).toContain('Cache found (daemon), extracting...');
|
|
189
|
-
expect(stdout).toContain('CACHE_SOURCE=daemon');
|
|
190
|
-
expect(stdout).not.toContain('Warning');
|
|
191
|
-
});
|
|
192
|
-
});
|
|
193
|
-
describe('cache-pull from a preset, over the daemon', () => {
|
|
194
|
-
test('an empty cache is quiet through the scope fallback too', async () => {
|
|
195
|
-
const { stdout, paths } = await runPull({ keyStatus: 404, technology: 'npm' });
|
|
196
|
-
// Exact key first, then the scope's newest — the shape the fallback needs.
|
|
197
|
-
expect(paths).toHaveLength(2);
|
|
198
|
-
expect(paths[1]).toContain('/cache/scope/');
|
|
199
|
-
expect(stdout).toContain('No cache found for key: npm-');
|
|
200
|
-
expect(stdout).not.toContain('Warning');
|
|
201
|
-
});
|
|
202
|
-
test('a broken daemon is named on the preset path as well', async () => {
|
|
203
|
-
// The two forms emit the same diagnosis from one definition. They used to
|
|
204
|
-
// carry byte-identical copies of the upload block, and that is exactly how
|
|
205
|
-
// the push-side defect got in.
|
|
206
|
-
const { stdout } = await runPull({ keyStatus: 401, technology: 'npm' });
|
|
207
|
-
expect(stdout).toContain('Warning: cache-pull could not restore');
|
|
208
|
-
expect(stdout).toContain('401');
|
|
209
|
-
expect(stdout).toContain('CACHE_SOURCE=cold');
|
|
210
|
-
});
|
|
211
|
-
});
|
|
212
|
-
//# sourceMappingURL=cache-pull-daemon.test.js.map
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `cache-pull` restores every cached path to the root it was recorded against.
|
|
3
|
-
*
|
|
4
|
-
* `cache-push` archives two kinds of entry in one tarball. A `~`- or `/`-rooted
|
|
5
|
-
* path is expanded and tar stores it with the leading `/` stripped
|
|
6
|
-
* (`/home/builder/.gradle/caches` -> `home/builder/.gradle/caches`). A
|
|
7
|
-
* project-relative path (`Pods`, `.gradle`, `node_modules`) is stored as-is,
|
|
8
|
-
* relative to the step's working directory. Every restore then used a single
|
|
9
|
-
* `tar -xf - -C /`, which is right for the first kind and impossible for the
|
|
10
|
-
* second: the build user cannot create `/Pods`.
|
|
11
|
-
*
|
|
12
|
-
* Three shapes, three different failures, all measured before this was fixed:
|
|
13
|
-
*
|
|
14
|
-
* | `cache_paths` | before |
|
|
15
|
-
* |------------------------------------------|---------------------------------|
|
|
16
|
-
* | all `~`-rooted | correct |
|
|
17
|
-
* | mixed (every Gradle/Android pipeline) | `~` half landed, relative half never did, tar exited non-zero, reported **cold** on a build that was warm |
|
|
18
|
-
* | all project-relative (Pods, node_modules)| **nothing** landed — those caches were written on every build and had never restored |
|
|
19
|
-
*
|
|
20
|
-
* So the mixed shape lied and the all-relative shape silently did nothing. Both
|
|
21
|
-
* are asserted here, and the all-`~` shape is asserted too because it already
|
|
22
|
-
* worked and the fix must not cost it anything.
|
|
23
|
-
*
|
|
24
|
-
* ### Why this runs the real `tar`
|
|
25
|
-
*
|
|
26
|
-
* The sibling daemon suite stubs `tar` to `cat > /dev/null`, because the
|
|
27
|
-
* generated script extracts with `-C /` and nothing there is worth writing to
|
|
28
|
-
* the root of the machine running the suite. This suite cannot: *where the
|
|
29
|
-
* bytes land* is the entire question, and a stub answers it by construction.
|
|
30
|
-
*
|
|
31
|
-
* It stays out of the real root by pointing `CIBUILD_USER_HOME` at a temporary
|
|
32
|
-
* directory. `~/.gradle/caches` then expands to an absolute path *inside* that
|
|
33
|
-
* directory, so `-C /` reassembles it exactly where it belongs and writes
|
|
34
|
-
* nothing outside the temp tree. The path is resolved through `realpath` first:
|
|
35
|
-
* on macOS `/var` is a symlink to `/private/var`, and tar refuses to extract
|
|
36
|
-
* through a symlink.
|
|
37
|
-
*
|
|
38
|
-
* `zstd` is stubbed to an identity copy, as in the sibling suite — it is not on
|
|
39
|
-
* every host, and compression is not what is under test.
|
|
40
|
-
*/
|
|
41
|
-
export {};
|
|
42
|
-
//# sourceMappingURL=cache-pull-restore-roots.test.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cache-pull-restore-roots.test.d.ts","sourceRoot":"","sources":["../../../../src/yaml/steps/cache-pull-restore-roots.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG"}
|