@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,130 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* A build whose HEAD commit has a multi-line message completes every step.
|
|
3
|
-
*
|
|
4
|
-
* This is the regression that started the whole thread. On 2026-08-30 the first
|
|
5
|
-
* real `invarn setup` proof died of it: `git-clone` publishes the commit body,
|
|
6
|
-
* and every step after it failed loading the envstore —
|
|
7
|
-
*
|
|
8
|
-
* [step_2] Running: cache-pull
|
|
9
|
-
* …: line 59: export: `value nothing provides.': not a valid identifier
|
|
10
|
-
* ✗ Pipeline failed: Step "Install CocoaPods" failed with exit code 1
|
|
11
|
-
*
|
|
12
|
-
* `src/yaml/steps/envstore-loader.test.ts` drives the *reader* with hostile
|
|
13
|
-
* content written by hand, which is the right shape for the defect but stops
|
|
14
|
-
* short of the thing that actually happened: the value came out of a real
|
|
15
|
-
* repository, through a real producer. This closes that gap — a real
|
|
16
|
-
* `git commit`, the real `git-clone` step reading it with `git log -1
|
|
17
|
-
* --format=%b`, the real `envman` writer (`envmanShellFunction`, the same
|
|
18
|
-
* bytes the runner prepends to every script step), and the real reader in the
|
|
19
|
-
* next step's preamble.
|
|
20
|
-
*
|
|
21
|
-
* The fixture's commit message carries both consequences the PRD names, because
|
|
22
|
-
* they need different bytes to surface: a line that is *not* a valid assignment
|
|
23
|
-
* (which killed the step) and a line that *is* one (which let the commit's
|
|
24
|
-
* author set `PATH` for every step after it).
|
|
25
|
-
*/
|
|
26
|
-
import { describe, test, expect, beforeAll, afterAll } from '@jest/globals';
|
|
27
|
-
import { execFileSync, spawnSync } from 'child_process';
|
|
28
|
-
import { mkdtempSync, readFileSync, mkdirSync, rmSync, writeFileSync, existsSync } from 'fs';
|
|
29
|
-
import { join } from 'path';
|
|
30
|
-
import { tmpdir } from 'os';
|
|
31
|
-
import { envmanShellFunction } from './shim.js';
|
|
32
|
-
import { GitCloneStepExecutor } from '../yaml/steps/git-clone.js';
|
|
33
|
-
import { ScriptStepExecutor } from '../yaml/steps/script.js';
|
|
34
|
-
import { testConfigNoPeer } from '../yaml/steps/test-config.js';
|
|
35
|
-
const SUBJECT = 'Add Invarn pipeline';
|
|
36
|
-
/**
|
|
37
|
-
* Three lines and a blank one. Line 2 is not a valid assignment; line 4 is.
|
|
38
|
-
* `git log --format=%b` emits a trailing newline that `$( )` strips, so the
|
|
39
|
-
* expected value below carries none.
|
|
40
|
-
*/
|
|
41
|
-
const BODY = [
|
|
42
|
-
'cibuild sets CIBUILD_GIT_BRANCH, so pre-execution validation asked for a',
|
|
43
|
-
'value nothing provides.',
|
|
44
|
-
'',
|
|
45
|
-
'PATH=/tmp/attacker-controlled',
|
|
46
|
-
].join('\n');
|
|
47
|
-
describe('a multi-line commit message, from the repository to the next step', () => {
|
|
48
|
-
let repoDir;
|
|
49
|
-
let envstorePath;
|
|
50
|
-
let captureDir;
|
|
51
|
-
beforeAll(() => {
|
|
52
|
-
repoDir = mkdtempSync(join(tmpdir(), 'envstore-round-trip-'));
|
|
53
|
-
envstorePath = join(repoDir, '.ci', '.envstore.json');
|
|
54
|
-
captureDir = join(repoDir, 'captured');
|
|
55
|
-
mkdirSync(captureDir, { recursive: true });
|
|
56
|
-
writeFileSync(join(repoDir, 'README.md'), 'fixture\n', 'utf-8');
|
|
57
|
-
const git = (...args) => {
|
|
58
|
-
execFileSync('git', args, { cwd: repoDir, stdio: 'ignore' });
|
|
59
|
-
};
|
|
60
|
-
git('init', '-b', 'main');
|
|
61
|
-
git('config', 'user.name', 'CI Build Tests');
|
|
62
|
-
git('config', 'user.email', 'cibuild-tests@example.com');
|
|
63
|
-
git('config', 'commit.gpgsign', 'false');
|
|
64
|
-
git('add', '.');
|
|
65
|
-
git('commit', '-m', `${SUBJECT}\n\n${BODY}`);
|
|
66
|
-
});
|
|
67
|
-
afterAll(() => {
|
|
68
|
-
rmSync(repoDir, { recursive: true, force: true });
|
|
69
|
-
});
|
|
70
|
-
/**
|
|
71
|
-
* Runs one generated step the way the runner does: the envman shell function
|
|
72
|
-
* prepended, bash, the envstore path in the environment so it survives the
|
|
73
|
-
* `cd` the step does.
|
|
74
|
-
*/
|
|
75
|
-
function runStep(script) {
|
|
76
|
-
const scriptPath = join(repoDir, '__step.sh');
|
|
77
|
-
writeFileSync(scriptPath, envmanShellFunction() + script, 'utf-8');
|
|
78
|
-
const proc = spawnSync('bash', [scriptPath], {
|
|
79
|
-
cwd: repoDir,
|
|
80
|
-
encoding: 'utf-8',
|
|
81
|
-
env: {
|
|
82
|
-
...process.env,
|
|
83
|
-
ENVMAN_ENVSTORE_PATH: envstorePath,
|
|
84
|
-
CAPTURE_DIR: captureDir,
|
|
85
|
-
},
|
|
86
|
-
});
|
|
87
|
-
return { status: proc.status, stdout: proc.stdout ?? '', stderr: proc.stderr ?? '' };
|
|
88
|
-
}
|
|
89
|
-
function captured(name) {
|
|
90
|
-
const file = join(captureDir, name);
|
|
91
|
-
return existsSync(file) ? readFileSync(file, 'utf-8') : undefined;
|
|
92
|
-
}
|
|
93
|
-
test('git-clone publishes the commit body without dying on it', async () => {
|
|
94
|
-
const { script } = await new GitCloneStepExecutor().execute({}, {}, testConfigNoPeer);
|
|
95
|
-
const run = runStep(script);
|
|
96
|
-
expect(run.status).toBe(0);
|
|
97
|
-
expect(run.stdout).toContain(`Message: ${SUBJECT}`);
|
|
98
|
-
// The envstore is what the next step reads, so it has to exist and to hold
|
|
99
|
-
// the body as data rather than as three more records.
|
|
100
|
-
const store = JSON.parse(readFileSync(envstorePath, 'utf-8'));
|
|
101
|
-
expect(store.envs.find(e => e.key === 'GIT_CLONE_COMMIT_MESSAGE_BODY')?.value).toBe(BODY);
|
|
102
|
-
expect(store.envs.map(e => e.key)).not.toContain('PATH');
|
|
103
|
-
});
|
|
104
|
-
test('the next step loads it, completes, and is not reconfigured by it', async () => {
|
|
105
|
-
// Runs after git-clone above: the envstore on disk is the real one that
|
|
106
|
-
// step wrote.
|
|
107
|
-
const { script } = await new ScriptStepExecutor().execute({
|
|
108
|
-
content: [
|
|
109
|
-
`printf '%s' "\${GIT_CLONE_COMMIT_MESSAGE_BODY-}" > "$CAPTURE_DIR/body"`,
|
|
110
|
-
`printf '%s' "\${GIT_CLONE_COMMIT_MESSAGE_SUBJECT-}" > "$CAPTURE_DIR/subject"`,
|
|
111
|
-
`printf '%s' "$PATH" > "$CAPTURE_DIR/path"`,
|
|
112
|
-
'echo step-completed',
|
|
113
|
-
].join('\n'),
|
|
114
|
-
}, {}, testConfigNoPeer);
|
|
115
|
-
const run = runStep(script);
|
|
116
|
-
// "Completes every step" — the whole acceptance criterion, and what the
|
|
117
|
-
// production build could not do.
|
|
118
|
-
expect(run.status).toBe(0);
|
|
119
|
-
expect(run.stdout).toContain('step-completed');
|
|
120
|
-
expect(run.stderr).not.toContain('not a valid identifier');
|
|
121
|
-
// Correctness: byte for byte, internal blank line and all.
|
|
122
|
-
expect(captured('body')).toBe(BODY);
|
|
123
|
-
expect(captured('subject')).toBe(SUBJECT);
|
|
124
|
-
// Security: the commit's author does not get to choose PATH. Compared
|
|
125
|
-
// against what the parent process held, which is what "unchanged" means.
|
|
126
|
-
expect(captured('path')).toBe(process.env.PATH ?? '');
|
|
127
|
-
expect(captured('path')).not.toContain('/tmp/attacker-controlled');
|
|
128
|
-
});
|
|
129
|
-
});
|
|
130
|
-
//# sourceMappingURL=envstore-round-trip.test.js.map
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* CI Build Environment Variable Manager (envman)
|
|
3
|
-
*
|
|
4
|
-
* A tool for managing environment variables between CI/CD pipeline steps.
|
|
5
|
-
* Similar to Bitrise's envman, this allows scripts to register outputs
|
|
6
|
-
* that subsequent steps can use as environment variables.
|
|
7
|
-
*
|
|
8
|
-
* @example
|
|
9
|
-
* // In a script step:
|
|
10
|
-
* // envman add --key BUILD_VERSION --value '1.2.3'
|
|
11
|
-
* // envman add --key APK_PATH --valuefile ./build/output/path.txt
|
|
12
|
-
*
|
|
13
|
-
* @example
|
|
14
|
-
* // Programmatic usage:
|
|
15
|
-
* import { add, getAll, run } from './envman/index.js';
|
|
16
|
-
*
|
|
17
|
-
* add({ key: 'BUILD_VERSION', value: '1.2.3' });
|
|
18
|
-
* const envs = getAll();
|
|
19
|
-
* await run(['gradle', 'assembleRelease']);
|
|
20
|
-
*/
|
|
21
|
-
export * from './envman.js';
|
|
22
|
-
export * from './types.js';
|
|
23
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/envman/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
|
package/dist/src/envman/index.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* CI Build Environment Variable Manager (envman)
|
|
3
|
-
*
|
|
4
|
-
* A tool for managing environment variables between CI/CD pipeline steps.
|
|
5
|
-
* Similar to Bitrise's envman, this allows scripts to register outputs
|
|
6
|
-
* that subsequent steps can use as environment variables.
|
|
7
|
-
*
|
|
8
|
-
* @example
|
|
9
|
-
* // In a script step:
|
|
10
|
-
* // envman add --key BUILD_VERSION --value '1.2.3'
|
|
11
|
-
* // envman add --key APK_PATH --valuefile ./build/output/path.txt
|
|
12
|
-
*
|
|
13
|
-
* @example
|
|
14
|
-
* // Programmatic usage:
|
|
15
|
-
* import { add, getAll, run } from './envman/index.js';
|
|
16
|
-
*
|
|
17
|
-
* add({ key: 'BUILD_VERSION', value: '1.2.3' });
|
|
18
|
-
* const envs = getAll();
|
|
19
|
-
* await run(['gradle', 'assembleRelease']);
|
|
20
|
-
*/
|
|
21
|
-
export * from './envman.js';
|
|
22
|
-
export * from './types.js';
|
|
23
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The `envman` shell function prepended to every script step.
|
|
3
|
-
*
|
|
4
|
-
* Steps call `envman add --key K --value V` to publish a value to the steps
|
|
5
|
-
* after them. This is a bash function rather than a call to the `ci` binary
|
|
6
|
-
* because pkg-built binaries mishandle subcommands — so the writer half of the
|
|
7
|
-
* envstore contract is generated bash, exactly like the reader half in
|
|
8
|
-
* `createBashScript`.
|
|
9
|
-
*
|
|
10
|
-
* Lives in its own module so a test can run the *same bytes production runs*
|
|
11
|
-
* against a real producer, rather than a copy that can drift from it. The
|
|
12
|
-
* reader is driven directly in `src/yaml/steps/envstore-loader.test.ts`; the
|
|
13
|
-
* pair is exercised end to end in `src/envman/envstore-round-trip.test.ts`.
|
|
14
|
-
*/
|
|
15
|
-
export declare function envmanShellFunction(): string;
|
|
16
|
-
//# sourceMappingURL=shim.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"shim.d.ts","sourceRoot":"","sources":["../../../src/envman/shim.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAkD5C"}
|
package/dist/src/envman/shim.js
DELETED
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The `envman` shell function prepended to every script step.
|
|
3
|
-
*
|
|
4
|
-
* Steps call `envman add --key K --value V` to publish a value to the steps
|
|
5
|
-
* after them. This is a bash function rather than a call to the `ci` binary
|
|
6
|
-
* because pkg-built binaries mishandle subcommands — so the writer half of the
|
|
7
|
-
* envstore contract is generated bash, exactly like the reader half in
|
|
8
|
-
* `createBashScript`.
|
|
9
|
-
*
|
|
10
|
-
* Lives in its own module so a test can run the *same bytes production runs*
|
|
11
|
-
* against a real producer, rather than a copy that can drift from it. The
|
|
12
|
-
* reader is driven directly in `src/yaml/steps/envstore-loader.test.ts`; the
|
|
13
|
-
* pair is exercised end to end in `src/envman/envstore-round-trip.test.ts`.
|
|
14
|
-
*/
|
|
15
|
-
export function envmanShellFunction() {
|
|
16
|
-
return `envman() {
|
|
17
|
-
local cmd="$1"; shift
|
|
18
|
-
local store="\${ENVMAN_ENVSTORE_PATH:-.ci/.envstore.json}"
|
|
19
|
-
case "$cmd" in
|
|
20
|
-
add)
|
|
21
|
-
local key="" value="" valuefile="" sensitive=false skipifempty=false append=false
|
|
22
|
-
while [ $# -gt 0 ]; do
|
|
23
|
-
case "$1" in
|
|
24
|
-
--key|-k) key="$2"; shift 2 ;;
|
|
25
|
-
--value|-v) value="$2"; shift 2 ;;
|
|
26
|
-
--valuefile|-f) valuefile="$2"; shift 2 ;;
|
|
27
|
-
--sensitive|-s) sensitive=true; shift ;;
|
|
28
|
-
--skip-if-empty) skipifempty=true; shift ;;
|
|
29
|
-
--append|-a) append=true; shift ;;
|
|
30
|
-
*) shift ;;
|
|
31
|
-
esac
|
|
32
|
-
done
|
|
33
|
-
[ -z "$key" ] && { echo "envman add: --key required" >&2; return 1; }
|
|
34
|
-
if [ -n "$valuefile" ]; then
|
|
35
|
-
value="$(cat "$valuefile")"
|
|
36
|
-
elif [ -z "$value" ] && ! [ -t 0 ]; then
|
|
37
|
-
value="$(cat)"
|
|
38
|
-
fi
|
|
39
|
-
[ "$skipifempty" = true ] && [ -z "$value" ] && return 0
|
|
40
|
-
node -e '
|
|
41
|
-
const fs=require("fs");
|
|
42
|
-
const f=process.argv[1], k=process.argv[2], v=process.argv[3];
|
|
43
|
-
const s=process.argv[4]==="true", a=process.argv[5]==="true";
|
|
44
|
-
let store={envs:[]};
|
|
45
|
-
try{store=JSON.parse(fs.readFileSync(f,"utf-8"))}catch{}
|
|
46
|
-
const idx=store.envs.findIndex(e=>e.key===k);
|
|
47
|
-
if(a && idx>=0){store.envs[idx].value+=v}
|
|
48
|
-
else if(idx>=0){store.envs[idx].value=v;store.envs[idx].sensitive=s}
|
|
49
|
-
else{store.envs.push({key:k,value:v,sensitive:s})}
|
|
50
|
-
fs.mkdirSync(require("path").dirname(f),{recursive:true});
|
|
51
|
-
fs.writeFileSync(f,JSON.stringify(store,null,2));
|
|
52
|
-
' "$store" "$key" "$value" "$sensitive" "$append"
|
|
53
|
-
echo "envman: $key set"
|
|
54
|
-
;;
|
|
55
|
-
init)
|
|
56
|
-
node -e 'const fs=require("fs");const f=process.argv[1];fs.mkdirSync(require("path").dirname(f),{recursive:true});fs.writeFileSync(f,JSON.stringify({envs:[]},null,2))' "$store"
|
|
57
|
-
;;
|
|
58
|
-
*)
|
|
59
|
-
echo "envman: unknown command: $cmd" >&2; return 1
|
|
60
|
-
;;
|
|
61
|
-
esac
|
|
62
|
-
}
|
|
63
|
-
export -f envman
|
|
64
|
-
`;
|
|
65
|
-
}
|
|
66
|
-
//# sourceMappingURL=shim.js.map
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Type definitions for the CI Build Environment Variable Manager (envman)
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* A single environment variable entry in the store
|
|
6
|
-
*/
|
|
7
|
-
export interface EnvEntry {
|
|
8
|
-
key: string;
|
|
9
|
-
value: string;
|
|
10
|
-
sensitive?: boolean;
|
|
11
|
-
createdAt: string;
|
|
12
|
-
updatedAt: string;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* The environment variable store structure
|
|
16
|
-
*/
|
|
17
|
-
export interface EnvStore {
|
|
18
|
-
version: string;
|
|
19
|
-
envs: EnvEntry[];
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Options for adding an environment variable
|
|
23
|
-
*/
|
|
24
|
-
export interface AddOptions {
|
|
25
|
-
key: string;
|
|
26
|
-
value?: string;
|
|
27
|
-
valueFile?: string;
|
|
28
|
-
sensitive?: boolean;
|
|
29
|
-
skipIfEmpty?: boolean;
|
|
30
|
-
append?: boolean;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Options for running a command with environment variables
|
|
34
|
-
*/
|
|
35
|
-
export interface RunOptions {
|
|
36
|
-
command: string[];
|
|
37
|
-
expandEnvs?: boolean;
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Result of an envman operation
|
|
41
|
-
*/
|
|
42
|
-
export interface EnvmanResult {
|
|
43
|
-
success: boolean;
|
|
44
|
-
message?: string;
|
|
45
|
-
error?: string;
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Default store file name
|
|
49
|
-
*/
|
|
50
|
-
export declare const DEFAULT_STORE_FILE = ".envstore.json";
|
|
51
|
-
/**
|
|
52
|
-
* Current store version
|
|
53
|
-
*/
|
|
54
|
-
export declare const STORE_VERSION = "1.0.0";
|
|
55
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/envman/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,QAAQ,EAAE,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,mBAAmB,CAAC;AAEnD;;GAEG;AACH,eAAO,MAAM,aAAa,UAAU,CAAC"}
|
package/dist/src/envman/types.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Type definitions for the CI Build Environment Variable Manager (envman)
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* Default store file name
|
|
6
|
-
*/
|
|
7
|
-
export const DEFAULT_STORE_FILE = '.envstore.json';
|
|
8
|
-
/**
|
|
9
|
-
* Current store version
|
|
10
|
-
*/
|
|
11
|
-
export const STORE_VERSION = '1.0.0';
|
|
12
|
-
//# sourceMappingURL=types.js.map
|
package/dist/src/lib.d.ts
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @invarn/cibuild library API
|
|
3
|
-
*
|
|
4
|
-
* Programmatic access to cibuild pipeline parsing, conversion, and execution.
|
|
5
|
-
* This is the non-interactive library surface — no prompts, no TTY dependencies.
|
|
6
|
-
*
|
|
7
|
-
* Usage:
|
|
8
|
-
* import {
|
|
9
|
-
* loadYAMLPipeline,
|
|
10
|
-
* convertYAMLToPipelineDef,
|
|
11
|
-
* PipelineRunner,
|
|
12
|
-
* loadConfig,
|
|
13
|
-
* } from '@invarn/cibuild/lib';
|
|
14
|
-
*/
|
|
15
|
-
import './yaml/steps/index.js';
|
|
16
|
-
export { PipelineRunner, StepExecutionError } from './runner.js';
|
|
17
|
-
export { loadConfig } from './config.js';
|
|
18
|
-
export { loadYAMLPipeline, getWorkflowNames, hasWorkflow, YAMLParseError, YAMLValidationError, } from './yaml/parser.js';
|
|
19
|
-
export { loadFidelityManifest, parseFidelityManifest, buildSurfaceDispatchInputs, FidelityManifestError, } from './yaml/fidelity-manifest.js';
|
|
20
|
-
export type { FidelityManifest, FidelitySurface, FidelityState, StateReference, ReferenceProvenance, BaselineEntry, SurfaceDispatchInputs, } from './yaml/fidelity-manifest.js';
|
|
21
|
-
export { convertYAMLToPipelineDef, getAvailableWorkflows, YAMLConversionError, } from './yaml/converter.js';
|
|
22
|
-
export type { ConversionResult } from './yaml/converter.js';
|
|
23
|
-
export { pipeline } from './pipeline.js';
|
|
24
|
-
export { renderUiFidelityPreview } from './yaml/steps/ui-fidelity-preview.js';
|
|
25
|
-
export type { UiFidelityPreviewOptions, UiFidelityPreviewScreen, UiFidelityPreviewResult, UiFidelityPreviewScreenResult, UiFidelityPreviewDimensions, } from './yaml/steps/ui-fidelity-preview.js';
|
|
26
|
-
export { renderUiFidelityPreviewAndroid, ANDROID_TOOLCHAIN_MISSING, } from './yaml/steps/ui-fidelity-preview-android.js';
|
|
27
|
-
export type { UiFidelityPreviewAndroidOptions } from './yaml/steps/ui-fidelity-preview-android.js';
|
|
28
|
-
export { getStepExecutor, hasStep, getAvailableSteps, registerStep, getStepMetadata, } from './yaml/steps/registry.js';
|
|
29
|
-
export type { StepDef, PipelineDef, CIConfig, PipelineFactory, PipelineContext, StepBuilders, } from './types.js';
|
|
30
|
-
export type { StepExecutor, StepMetadata, StepPlatform, StepExecutionContext, } from './yaml/steps/base.js';
|
|
31
|
-
export type { YAMLPipeline, YAMLWorkflow, YAMLStep, YAMLStepInputs, YAMLEnvVar, YAMLApp, YAMLMeta, ParsedStep, PlatformInfo, Platform, MachineType, } from './yaml/types.js';
|
|
32
|
-
export { MissingEnvironmentVariableError } from './yaml/env-resolver.js';
|
|
33
|
-
//# sourceMappingURL=lib.d.ts.map
|
package/dist/src/lib.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,uBAAuB,CAAC;AAI/B,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAIjE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIzC,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,0BAA0B,EAC1B,qBAAqB,GACtB,MAAM,6BAA6B,CAAC;AACrC,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,qBAAqB,GACtB,MAAM,6BAA6B,CAAC;AAIrC,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAI5D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAIzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,YAAY,EACV,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,6BAA6B,EAC7B,2BAA2B,GAC5B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,8BAA8B,EAC9B,yBAAyB,GAC1B,MAAM,6CAA6C,CAAC;AACrD,YAAY,EAAE,+BAA+B,EAAE,MAAM,6CAA6C,CAAC;AAInG,OAAO,EACL,eAAe,EACf,OAAO,EACP,iBAAiB,EACjB,YAAY,EACZ,eAAe,GAChB,MAAM,0BAA0B,CAAC;AAIlC,YAAY,EACV,OAAO,EACP,WAAW,EACX,QAAQ,EACR,eAAe,EACf,eAAe,EACf,YAAY,GACb,MAAM,YAAY,CAAC;AAIpB,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAI9B,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,UAAU,EACV,OAAO,EACP,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,WAAW,GACZ,MAAM,iBAAiB,CAAC;AAIzB,OAAO,EAAE,+BAA+B,EAAE,MAAM,wBAAwB,CAAC"}
|
package/dist/src/lib.js
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @invarn/cibuild library API
|
|
3
|
-
*
|
|
4
|
-
* Programmatic access to cibuild pipeline parsing, conversion, and execution.
|
|
5
|
-
* This is the non-interactive library surface — no prompts, no TTY dependencies.
|
|
6
|
-
*
|
|
7
|
-
* Usage:
|
|
8
|
-
* import {
|
|
9
|
-
* loadYAMLPipeline,
|
|
10
|
-
* convertYAMLToPipelineDef,
|
|
11
|
-
* PipelineRunner,
|
|
12
|
-
* loadConfig,
|
|
13
|
-
* } from '@invarn/cibuild/lib';
|
|
14
|
-
*/
|
|
15
|
-
// Side-effect: initialize the step registry (registers all step executors).
|
|
16
|
-
// Must run before any convertYAMLToPipelineDef call.
|
|
17
|
-
import './yaml/steps/index.js';
|
|
18
|
-
// ─── Runner ─────────────────────────────────────────────────────────────
|
|
19
|
-
export { PipelineRunner, StepExecutionError } from './runner.js';
|
|
20
|
-
// ─── Config ─────────────────────────────────────────────────────────────
|
|
21
|
-
export { loadConfig } from './config.js';
|
|
22
|
-
// ─── YAML parser ────────────────────────────────────────────────────────
|
|
23
|
-
export { loadYAMLPipeline, getWorkflowNames, hasWorkflow, YAMLParseError, YAMLValidationError, } from './yaml/parser.js';
|
|
24
|
-
// ─── UI fidelity manifest ───────────────────────────────────────────────
|
|
25
|
-
export { loadFidelityManifest, parseFidelityManifest, buildSurfaceDispatchInputs, FidelityManifestError, } from './yaml/fidelity-manifest.js';
|
|
26
|
-
// ─── YAML converter (non-interactive) ───────────────────────────────────
|
|
27
|
-
export { convertYAMLToPipelineDef, getAvailableWorkflows, YAMLConversionError, } from './yaml/converter.js';
|
|
28
|
-
// ─── Pipeline DSL factory ───────────────────────────────────────────────
|
|
29
|
-
export { pipeline } from './pipeline.js';
|
|
30
|
-
// ─── UI fidelity local preview ──────────────────────────────────────────
|
|
31
|
-
export { renderUiFidelityPreview } from './yaml/steps/ui-fidelity-preview.js';
|
|
32
|
-
export { renderUiFidelityPreviewAndroid, ANDROID_TOOLCHAIN_MISSING, } from './yaml/steps/ui-fidelity-preview-android.js';
|
|
33
|
-
// ─── Step registry ──────────────────────────────────────────────────────
|
|
34
|
-
export { getStepExecutor, hasStep, getAvailableSteps, registerStep, getStepMetadata, } from './yaml/steps/registry.js';
|
|
35
|
-
// ─── Error types ────────────────────────────────────────────────────────
|
|
36
|
-
export { MissingEnvironmentVariableError } from './yaml/env-resolver.js';
|
|
37
|
-
//# sourceMappingURL=lib.js.map
|
package/dist/src/pipeline.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA8C,eAAe,EAAE,MAAM,YAAY,CAAC;AAE9F,eAAO,MAAM,QAAQ,EAAE,eAmEtB,CAAC"}
|
package/dist/src/pipeline.js
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
export const pipeline = (name, builder) => {
|
|
2
|
-
const def = {
|
|
3
|
-
name,
|
|
4
|
-
artifacts: [],
|
|
5
|
-
steps: [],
|
|
6
|
-
stepsOrder: [],
|
|
7
|
-
};
|
|
8
|
-
const stepBuilders = {
|
|
9
|
-
script(name, options) {
|
|
10
|
-
def.steps.push({
|
|
11
|
-
id: options.id,
|
|
12
|
-
name,
|
|
13
|
-
kind: "script",
|
|
14
|
-
shell: options.shell,
|
|
15
|
-
script: options.script,
|
|
16
|
-
});
|
|
17
|
-
},
|
|
18
|
-
python(name, options) {
|
|
19
|
-
def.steps.push({
|
|
20
|
-
id: options.id,
|
|
21
|
-
name,
|
|
22
|
-
kind: "python",
|
|
23
|
-
script: options.script,
|
|
24
|
-
});
|
|
25
|
-
},
|
|
26
|
-
ruby(name, options) {
|
|
27
|
-
def.steps.push({
|
|
28
|
-
id: options.id,
|
|
29
|
-
name,
|
|
30
|
-
kind: "ruby",
|
|
31
|
-
script: options.script,
|
|
32
|
-
});
|
|
33
|
-
},
|
|
34
|
-
node(name, options) {
|
|
35
|
-
def.steps.push({
|
|
36
|
-
id: options.id,
|
|
37
|
-
name,
|
|
38
|
-
kind: "node",
|
|
39
|
-
script: options.script,
|
|
40
|
-
});
|
|
41
|
-
},
|
|
42
|
-
};
|
|
43
|
-
const pipelineContext = {
|
|
44
|
-
artifacts(paths) {
|
|
45
|
-
def.artifacts = paths;
|
|
46
|
-
},
|
|
47
|
-
steps(builder) {
|
|
48
|
-
builder(stepBuilders);
|
|
49
|
-
},
|
|
50
|
-
stepsOrder(ids) {
|
|
51
|
-
def.stepsOrder = ids;
|
|
52
|
-
},
|
|
53
|
-
};
|
|
54
|
-
builder(pipelineContext);
|
|
55
|
-
return def;
|
|
56
|
-
};
|
|
57
|
-
//# sourceMappingURL=pipeline.js.map
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Node-kind step execution must ride a temp script FILE, never `node -e`.
|
|
3
|
-
*
|
|
4
|
-
* The released `ci` binary is pkg-built. pkg's bootstrap intercepts child
|
|
5
|
-
* spawns of `node` and re-executes the pkg binary itself — and that
|
|
6
|
-
* bootstrap cannot handle `-e`: it resolves it as an entrypoint path and
|
|
7
|
-
* dies with `Cannot find module '<cwd>/-e'` before the script runs. A
|
|
8
|
-
* real file path works under both a system node and the pkg bootstrap,
|
|
9
|
-
* exactly like bash steps already do via their temp-file pattern.
|
|
10
|
-
*/
|
|
11
|
-
export {};
|
|
12
|
-
//# sourceMappingURL=runner-node-step.test.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runner-node-step.test.d.ts","sourceRoot":"","sources":["../../src/runner-node-step.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Node-kind step execution must ride a temp script FILE, never `node -e`.
|
|
3
|
-
*
|
|
4
|
-
* The released `ci` binary is pkg-built. pkg's bootstrap intercepts child
|
|
5
|
-
* spawns of `node` and re-executes the pkg binary itself — and that
|
|
6
|
-
* bootstrap cannot handle `-e`: it resolves it as an entrypoint path and
|
|
7
|
-
* dies with `Cannot find module '<cwd>/-e'` before the script runs. A
|
|
8
|
-
* real file path works under both a system node and the pkg bootstrap,
|
|
9
|
-
* exactly like bash steps already do via their temp-file pattern.
|
|
10
|
-
*/
|
|
11
|
-
import { describe, test, expect, afterEach } from '@jest/globals';
|
|
12
|
-
import { mkdtempSync, readFileSync, rmSync } from 'node:fs';
|
|
13
|
-
import { tmpdir } from 'node:os';
|
|
14
|
-
import { join } from 'node:path';
|
|
15
|
-
import { PipelineRunner, StepExecutionError } from './runner.js';
|
|
16
|
-
import { loadConfig } from './config.js';
|
|
17
|
-
function nodeStep(script) {
|
|
18
|
-
return {
|
|
19
|
-
id: 'step_test',
|
|
20
|
-
name: 'node-under-test',
|
|
21
|
-
kind: 'node',
|
|
22
|
-
script,
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
describe('PipelineRunner node-kind steps', () => {
|
|
26
|
-
let outDir = null;
|
|
27
|
-
afterEach(() => {
|
|
28
|
-
if (outDir)
|
|
29
|
-
rmSync(outDir, { recursive: true, force: true });
|
|
30
|
-
outDir = null;
|
|
31
|
-
});
|
|
32
|
-
test('executes the script from a file: argv[1] is a real path, never -e', async () => {
|
|
33
|
-
outDir = mkdtempSync(join(tmpdir(), 'cibuild-node-step-'));
|
|
34
|
-
const probePath = join(outDir, 'probe.json');
|
|
35
|
-
const runner = new PipelineRunner(loadConfig('/nonexistent/ci.config.json'));
|
|
36
|
-
await runner.runStep(nodeStep(`require('fs').writeFileSync(${JSON.stringify(probePath)}, JSON.stringify({` +
|
|
37
|
-
`argv1: process.argv[1] ?? null,` +
|
|
38
|
-
`filename: typeof __filename === 'string' ? __filename : null` +
|
|
39
|
-
`}))`));
|
|
40
|
-
const probe = JSON.parse(readFileSync(probePath, 'utf-8'));
|
|
41
|
-
// `node -e` leaves argv[1] undefined and has no __filename; a
|
|
42
|
-
// file-executed script has both, and neither may be the literal '-e'.
|
|
43
|
-
expect(probe.argv1).not.toBeNull();
|
|
44
|
-
expect(probe.argv1).not.toBe('-e');
|
|
45
|
-
expect(probe.filename).not.toBeNull();
|
|
46
|
-
expect(probe.filename).toMatch(/\.cjs$/);
|
|
47
|
-
});
|
|
48
|
-
test('propagates a non-zero exit as StepExecutionError', async () => {
|
|
49
|
-
const runner = new PipelineRunner(loadConfig('/nonexistent/ci.config.json'));
|
|
50
|
-
await expect(runner.runStep(nodeStep('process.exit(3)'))).rejects.toThrow(StepExecutionError);
|
|
51
|
-
});
|
|
52
|
-
test('cleans up the temp script file after the step exits', async () => {
|
|
53
|
-
outDir = mkdtempSync(join(tmpdir(), 'cibuild-node-step-'));
|
|
54
|
-
const probePath = join(outDir, 'probe.json');
|
|
55
|
-
const runner = new PipelineRunner(loadConfig('/nonexistent/ci.config.json'));
|
|
56
|
-
await runner.runStep(nodeStep(`require('fs').writeFileSync(${JSON.stringify(probePath)}, JSON.stringify({ filename: __filename }))`));
|
|
57
|
-
const { filename } = JSON.parse(readFileSync(probePath, 'utf-8'));
|
|
58
|
-
expect(() => readFileSync(filename)).toThrow();
|
|
59
|
-
});
|
|
60
|
-
});
|
|
61
|
-
//# sourceMappingURL=runner-node-step.test.js.map
|
package/dist/src/runner.d.ts
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import type { StepDef, PipelineDef, CIConfig } from "./types.js";
|
|
2
|
-
import type { CheckoutWitness } from "./yaml/converter.js";
|
|
3
|
-
export declare class StepExecutionError extends Error {
|
|
4
|
-
stepId: string;
|
|
5
|
-
stepName: string;
|
|
6
|
-
exitCode: number;
|
|
7
|
-
constructor(stepId: string, stepName: string, exitCode: number);
|
|
8
|
-
}
|
|
9
|
-
export declare class PipelineRunner {
|
|
10
|
-
private config;
|
|
11
|
-
constructor(config: CIConfig);
|
|
12
|
-
runStep(step: StepDef, stepNumber?: number): Promise<void>;
|
|
13
|
-
private formatDuration;
|
|
14
|
-
validatePipeline(pipeline: PipelineDef): void;
|
|
15
|
-
displayWarnings(warnings: string[], skippedSteps: number): void;
|
|
16
|
-
/**
|
|
17
|
-
* The commit this build compiled, printed under the banner.
|
|
18
|
-
*
|
|
19
|
-
* Every build carries it, whatever steps it declares. The dashboard's sha is
|
|
20
|
-
* the one that was *dispatched*; this one was read off the disk the compiler
|
|
21
|
-
* is about to read, and it is what a later argument about which code shipped
|
|
22
|
-
* has to be settled against. It used to live only in `git-clone`'s echo,
|
|
23
|
-
* which is optional and no longer in the curated templates.
|
|
24
|
-
*
|
|
25
|
-
* Labels match that echo's on purpose — where both appear they are the same
|
|
26
|
-
* three facts, and they have to agree.
|
|
27
|
-
*/
|
|
28
|
-
displayCheckout(checkout: CheckoutWitness): void;
|
|
29
|
-
runPipeline(pipeline: PipelineDef, warnings?: string[], skippedSteps?: number, checkout?: CheckoutWitness): Promise<void>;
|
|
30
|
-
}
|
|
31
|
-
//# sourceMappingURL=runner.d.ts.map
|
package/dist/src/runner.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/runner.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAO3D,qBAAa,kBAAmB,SAAQ,KAAK;IAElC,MAAM,EAAE,MAAM;IACd,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,MAAM;gBAFhB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM;CAK1B;AAED,qBAAa,cAAc;IACb,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,QAAQ;IAE9B,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiHhE,OAAO,CAAC,cAAc;IAYtB,gBAAgB,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI;IAwB7C,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAc/D;;;;;;;;;;;OAWG;IACH,eAAe,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAO1C,WAAW,CACf,QAAQ,EAAE,WAAW,EACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,EACnB,YAAY,CAAC,EAAE,MAAM,EACrB,QAAQ,CAAC,EAAE,eAAe,GACzB,OAAO,CAAC,IAAI,CAAC;CA+CjB"}
|