Resposta curta:
Para usar o Git Bash e executar
-
"%ProgramFiles%\Git\bin\bash.exe" script_name.sh
para executar um script -
"%ProgramFiles%\Git\bin\bash.exe" -c "echo 'it works'"
para executar one-liner
Um contexto:
Eu me deparei com essa pergunta ao procurar uma solução para algo semelhante. Em nossa configuração, usamos o Git Bash no Windows (especificamente no momento "GNU bash, versão 4.4.19 (1) -release (x86_64-pc-msys)") como parte do ambiente de desenvolvimento para Windows, temos alguns scripts queremos testar através do GitLab CI exatamente neste ambiente: executá-los no Git Bash e ver a saída no trabalho do IC.
O que funcionou para nós é executar "%ProgramFiles%\Git\bin\bash.exe" script_name.sh
em que "script_name.sh" é um script a ser executado pelo bash (ou se você precisar executar apenas o comando inline "%ProgramFiles%\Git\bin\bash.exe" -c "echo 'it works'"
). Uma saída desse script é visível na janela do CMD e é capturada pelo trabalho de IC.
Pode ser um resultado semelhante pode ser obtido com o Windows Subsystem para Linux, mas como o Git Bash era nossa exigência, não investigamos como isso poderia ser feito com o WSL.
Assim, uma solução / solução alternativa que eu proporia da minha experiência é instalar o link "Git For Windows" (Git Bash é uma parte e rodar scripts bash via Git Bash como descrito acima.
O Tópico Iniciante mencionou que a execução de um script do IC era exatamente o objetivo dele (citação: but the other "script" is just running it from the Windows command prompt. In the CI engine that is what is happening
, link ), e esse também foi o nosso caso de uso, então estou adicionando um exemplo de configuração de tarefas de CI (GitLab CI in nosso caso, ".gitlab-ci.yml"). É importante obter todos os dados corretos para que funcione, e levamos alguns erros para fazer isso da maneira correta:
test_on_windows:
stage: test
script:
- "\"%ProgramFiles%/Git/bin/bash.exe\" script_name.sh"
# or
- "\"%ProgramFiles%/Git/bin/bash.exe\" -c \"echo 'it works'\""
tags:
- windows