Skip to content

Custom shell wrapper doesn't work with powershell #78

Open

Description

@melund

When using the custom shell wrapper with powershell I get an error from github actions:

I am doing something like this on Windows runner.

- run:
    pytest 
  shell: pixi run pwsh -e test {0}

image

Activity

  1. ruben-arts commented on Feb 15, 2024

    @ruben-arts
    Contributor

    The pixi run command sends all info after the initial command to the task.
    I think something like this could work:

    - name: Run test with powershell
      run: pytest
      shell: pixi run -e test pwsh -File {0}

    Note the run pwsh -e test -> run -e test pwsh

  2. pavelzw commented on Feb 15, 2024

    @pavelzw
    Collaborator

    This should be updated in the readme (and we should add a test for it as well)

  3. pavelzw commented on Feb 15, 2024

    @pavelzw
    Collaborator

    maybe also add a test for cmd.exe

  4. melund commented on Feb 17, 2024

    @melund
    Author

    @ruben-arts

    I think something like this could work:
    shell: pixi run -e test pwsh -File {0}

    It doesn't seem to work.

    image

    It is odd, because GitHub Actions Docs does seem to indicate that is possible. Maybe they do something special if they detect the first argument is "pwsh" or "powershell".

  5. ruben-arts commented on Feb 17, 2024

    @ruben-arts
    Contributor

    Yeah I experienced the same, that's why we added this to the documentation and tests in #79

    - run: |
        python --version | Select-String "3.11"
      shell: pixi run pwsh -Command {0}

    You can use the environment with:

    - run: pytest
      shell: pixi run -e test pwsh -Command {0}
  6. melund commented on Feb 17, 2024

    @melund
    Author

    Powershell can't run scripts without the right extension. So GitHub Actions does something special when they detect the first command is "pwsh". This seem to work for me though:

    shell: pwsh -command "pixi run -e test pwsh '{0}'"
    

    But now as nice to look at :(

  7. melund commented on Feb 17, 2024

    @melund
    Author

    Ahh. Ok. I hadn't tried your way

    shell: pixi run -e test pwsh -Command {0}

    I will give that a try.

  8. ruben-arts commented on Feb 17, 2024

    @ruben-arts
    Contributor

    Powershell can't run scripts without the right extension. So GitHub Actions does something special when they detect the first command is "pwsh". This seem to work for me though:

    shell: pwsh -command "pixi run -e test pwsh '{0}'"
    

    But now as nice to look at :(

    Was this a reaction to my latest comment or did we comment at the same time?

  9. melund commented on Feb 17, 2024

    @melund
    Author

    They cross path I think :)

  10. melund commented on Feb 19, 2024

    @melund
    Author

    @ruben-arts, I am not sure your suggestion (pixi run -e test pwsh -Command {0}) works.

    It doesn't produce any errors, but it doesn't run my code either. Or maybe it only runs the first line of run section. I have not tested that.

    If I use my workaround:

    shell: pwsh -command "pixi run -e test pwsh '{0}'"

    Then the code actually runs.

    See these screenshots from my pipeline:

    With your suggestion nothing runs:

    image

    With: pwsh -command "pixi run -e test pwsh '{0}'" it runs:

    image

  11. melund commented on Feb 21, 2024

    @melund
    Author

    @pavelzw did you guys see my last post? Easy to overlook in closed issue 😅 I dont mind creating a new issue if you think it is needed.

  12. pavelzw commented on Feb 21, 2024

    @pavelzw
    Collaborator

    Yeah, I didn't try to reproduce this yet... Is the issue maybe that it's multiple files?

    Does this work for your use case?

    - run: |
    python --version | Select-String "3.11"
    shell: pixi run pwsh -Command {0}

  13. pavelzw commented on Sep 28, 2024

    @pavelzw
    Collaborator

    Does this work for your use case?

    @melund did you get around to try this?

  14. melund commented on Sep 29, 2024

    @melund
    Author

    @pavelzw: Yes that doesn't work:

    https://github.com/melund/test-pixi/actions/runs/11090308043/job/30812485079#step:5:5

    Only: shell: pwsh -command "pixi run -e test pwsh '{0}'" seems to work

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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