Skip to content

vars_files can never be resolved to paths that work #79

@ShoryuKyzan

Description

@ShoryuKyzan

Concourse 5.5.1
vars_files can never be resolved to paths that work.

... inside resources

  - name: development
    type: cf
    source:
      api: ...
      username: ...
      password: ...
      organization: ...
      space: ...

... inside tasks of the pipeline

      - put: development
        inputs: [put]
        params:
          manifest: put/manifest.yml
          vars_files:
            - put/<path to file>

Always fails with vars file file not found from the cf push command.
Incorrect Usage: The specified path 'put/sreteam.yml' does not exist.
And the file does exist, as checked by prior steps.

I have seen other versions of this with the magic directory /tmp/build/put/. Perhaps that is for older versions of concourse? I assume that is working for whoever wrote it but when I try it /tmp/build/put/ seems to be some kind of magic directory I can't carry over as an output from other tasks. The build working directory seems to be at /tmp/build/. When I copy things into /tmp/build/put the file is still not found. When you have just the filename in the vars_files input it will say /tmp/build/put/ is not found either.

It would seem that the working directory of the cf push command isn't /tmp/build/ in that container but something else. I note that os.Args[1] is concatenated to the manifest file path in main.go. Theres no problem finding the manifest file.

Workaround:

After reading some code I found that if I define path parameter, now vars file will be relative to that folder because it will chdir into it first before running the command.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions