Create a wrapper for MSYS2 bash CI environment
This way there's no need to prepend every line in build job with a path to MSYS2-installed bash, and deal with problems related to escaping embedded shell invocations.
This commit is contained in:
parent
1252abe844
commit
b7c4a529dc
2 changed files with 98 additions and 46 deletions
42
scripts/msys-bash.py
Normal file
42
scripts/msys-bash.py
Normal file
|
@ -0,0 +1,42 @@
|
|||
#!/usr/bin/python3
|
||||
|
||||
# Copyright (c) 2019 Patryk Obara <patryk.obara@gmail.com>
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# pylint: disable=invalid-name
|
||||
# pylint: disable=line-too-long
|
||||
|
||||
"""
|
||||
This is a wrapper for MSYS2 bash inside Windows GitHub CI environment.
|
||||
|
||||
Usage:
|
||||
|
||||
- name: Step Name
|
||||
shell: python scripts\msys-bash.py {0}
|
||||
run: echo "Hello"
|
||||
|
||||
GitHub documentation for specifying shell is here: [1], although it
|
||||
leaves several VERY important details out:
|
||||
|
||||
- The first parameter (program name) in template shell invocation needs to be
|
||||
in PATH; absolute path will result in obscure C# exception.
|
||||
- Name of temporary script file ends with a hardcoded extension matching the
|
||||
first parameter.
|
||||
- There is some additional undocumented trickery about expansion of {0} in
|
||||
template (most probably it's something about formatting strings in C#).
|
||||
- For some shells, an additional first line is prepended to the temporary
|
||||
script (but not for python!)
|
||||
|
||||
[1] https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#using-a-specific-shell
|
||||
"""
|
||||
|
||||
import shutil
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
if __name__ == "__main__":
|
||||
script_py = sys.argv[1]
|
||||
script_sh = script_py + '.sh'
|
||||
shutil.copy(script_py, script_sh)
|
||||
bash = [r'C:\tools\msys64\usr\bin\bash', '-eo', 'pipefail', '-l']
|
||||
subprocess.call(bash + [script_sh])
|
Loading…
Add table
Add a link
Reference in a new issue