CLI, "missing required input" of keystore (as part of debugging a 'works locally, not in bitrise' situation)

Bitrise Build Issue Report template

Description of the issue

bitrise run primary fails in file-downloader step, with

....
Configs:
  * source:
  * destination: /bitrise/src/app/keystore

[!] Missing required input: source

What do I need to do to make the file-downloader step work in the CLI for android?

Environment:

Where did the issue happen?

On a mac with the Bitrise CLI.

This was while trying to reproduce a builds-locally-but-not-in-bitrise issue in an android react-native app that I do have in Bitrise, and which worked previous to upgrading React-Native and some other dependencies. It continues to build on Macs from clean installs (even when removing gradle cache, etc). It’s an issue that appears to manifest as a missing build.gradle file in a dependency, but I can’t make that happen locally.

If on Bitrise.io: which stack? If not on Bitrise.io: on what operating system? (Plus any other information you can share)

Which build Step causes the issue and which version of the step?
file-downloader 0.9.1

Reproducibility

  • Does a “Rebuild” help? (You can trigger a rebuild from the Build’s page, by clicking the “Rebuild” button in the top right corner of a finished build) : NO
  • Does a rebuild without caches help? (You can remove the Cache:Pull and Cache:Push steps temporarily to not to use the cache, or you can delete all the caches on the Settings tab of the app. : NO
  • Does upgrading the build Step to the latest version help? : NO
  • When did the issue start? : about a week and a half ago, during an upgrade of some dependencies in a react-native project.

Linux/Android stack builds

_Can it be reproduced by running the build locally, after doing a new git clone of the repository into the /tmp directory and running the build from there with the Bitrise CLI ( https://www.bitrise.io/cli )? NO/BLOCKED; reason for this post.

If no, can it be reproduced with Docker (using the same docker images / environment we use on bitrise.io)? Related guide: http://devcenter.bitrise.io/docker/run-your-build-locally-in-docker/ . HAVEN’T HAD TIME FOR THIS 30GB ATTEMPT YET.

Other stacks

Can it be reproduced by running the build locally with our CLI ( https://www.bitrise.io/cli ), after doing a new git clone of the repository into the /tmp directory and running the build from there with the Bitrise CLI ( https://www.bitrise.io/cli )?

N/A.

Build log

Please attach the build log (you can download the build log from the build’s page, once the build is finished, using the “Download log” button - floating at the bottom right corner of the log viewer), or if you can’t attach the whole log then send the full log through a private channel (e.g. email - https://www.bitrise.io/contact ), with a link to the related GitHub issue.

N/A.

1 Like

Hi @mrluc,

The Filed Downloader step doesn’t work with local paths, so you can disable it for local builds with .IsCI, and you’ll need to use a script to get your keystore from a local path.

1 Like

Just to add an alternative option to what @daniel mentioned, use a relative path or env var based path in the file-downloader, e.g. $BITRISE_SOURCE_DIR/... instead of specifying the path directly as /bitrise/src/... and then mark the step with the run_if: .IsCI option.

This way locally you can just move the file where it should be ($BITRISE_SOURCE_DIR is the repository root dir) and the step can safely be skipped (with the run_if flag), no need for a Script step to copy the file.

@daniel, @viktorbenei, both of those make sense, thank you. .IsCI sounds promising.

1 Like