Comments below.

Mike

> -----Original Message-----
> From: Jayaprakash, N <n.jayaprak...@intel.com>
> Sent: Friday, June 14, 2024 10:02 AM
> To: devel@edk2.groups.io
> Cc: Jayaprakash, N <n.jayaprak...@intel.com>; Rebecca Cran
> <rebe...@bsdio.com>; Kinney, Michael D <michael.d.kin...@intel.com>
> Subject: [edk2-libc Patch 1/1] edk2-libc : add github actions workflow to
> build PyUEFI using VS2019
> 
> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4788
> 
> This commit adds github actions workflow to build python uefi
> interpreter with visual studio 2019 tool chain.
> The build-python-uefi-vs.yaml file under .github/workflows
> implements the build action for building the pyuefi interpreter
> with VS2019 tool chain. There is also a supporting python script
> under .github/scripts folder which is used to uncomment the python
> uefi related .inf file in AppPkg.dsc file.
> 
> Cc: Rebecca Cran <rebe...@bsdio.com>
> Cc: Michael D Kinney <michael.d.kin...@intel.com>
> Cc: Jayaprakash N <n.jayaprak...@intel.com>
> Signed-off-by: Jayaprakash N <n.jayaprak...@intel.com>
> ---
>  .github/scripts/enable_pyuefi_apppkg.py     | 31 ++++++++
>  .github/workflows/build-python-uefi-vs.yaml | 84 +++++++++++++++++++++
>  2 files changed, 115 insertions(+)
>  create mode 100644 .github/scripts/enable_pyuefi_apppkg.py
>  create mode 100644 .github/workflows/build-python-uefi-vs.yaml
> 
> diff --git a/.github/scripts/enable_pyuefi_apppkg.py
> b/.github/scripts/enable_pyuefi_apppkg.py
> new file mode 100644
> index 0000000..37b9e0a
> --- /dev/null
> +++ b/.github/scripts/enable_pyuefi_apppkg.py
> @@ -0,0 +1,31 @@
> +'''Script to enable the build of python UEFI interpreter
> +   in AppPkg.dsc file
> +'''

Copyright and License missing


> +import os
> +
> +
> +script_path = os.path.abspath(__file__)
> +script_dir = os.path.dirname(script_path)
> +
> +# path to the AppPkg.dsc file
> +path_to_AppPkg_dsc = os.path.join(script_dir, '..', '..', 'edk2', 'AppPkg',
> 'AppPkg.dsc')
> +print('Path to AppPkg dsc file : ', path_to_AppPkg_dsc)
> +
> +# Check if the file exists
> +if not os.path.isfile(path_to_AppPkg_dsc):
> +    print(f"The file {path_to_AppPkg_dsc} does not exist.")
> +else:
> +    # Read the content of the file
> +    with open(path_to_AppPkg_dsc, 'r') as file:
> +        lines = file.readlines()
> +
> +    # Uncomment the line containing "Python368.inf"
> +    with open(path_to_AppPkg_dsc, 'w') as file:
> +        for line in lines:
> +            if 'Python368.inf' in line and line.strip().startswith('#'):
> +                # Uncomment the line
> +                file.write(line.lstrip('#'))
> +            else:
> +                file.write(line)

This is complicated to edit a DSC file.  Can this INF be uncommented in this
DSC file or add another DSC files that is only used for this workflow to
build python that has this INF uncommented.  Then this extra python script
can be removed.

> +
> +    print(f"The file {path_to_AppPkg_dsc} has been updated.")
> diff --git a/.github/workflows/build-python-uefi-vs.yaml
> b/.github/workflows/build-python-uefi-vs.yaml
> new file mode 100644
> index 0000000..aa5c317
> --- /dev/null
> +++ b/.github/workflows/build-python-uefi-vs.yaml
> @@ -0,0 +1,84 @@

Copyright and License missing

> +name: Build Python Interpreter for UEFI using VS2019
> +
> +on: [push, pull_request]
> +
> +jobs:
> +  build:
> +    runs-on: windows-2019
> +    env:
> +      NASM_PREFIX: "C:\\Program Files\\NASM\\"
> +    defaults:
> +      run:
> +        shell: cmd
> +
> +    steps:
> +    - name: Checkout repository
> +      uses: actions/checkout@v4
> +
> +    - name: Setup Python
> +      uses: actions/setup-python@v5
> +      with:
> +        python-version: '3.10'
> +
> +    - name: Install NASM
> +      run: choco install nasm
> +
> +    - name: VSWhere
> +      run: |
> +        "C:\Program Files (x86)\Microsoft Visual
> Studio\Installer\vswhere.exe"
> +
> +    - name: Setup environment for Visual Studio 2019 Build Tools
> +      run: |
> +        "C:\Program Files (x86)\Microsoft Visual
> Studio\2019\Professional\VC\Auxiliary\Build\vcvarsall.bat" x86
> +        set
> +
> +    - name: Clone EDK2
> +      run: |
> +        git clone https://github.com/tianocore/edk2.git";
> +        cd edk2
> +        git submodule update --init
> +
> +    - name: Copy edk2-libc contents to edk2
> +      run: |
> +        dir
> +        cmd /c xcopy /E /I /Y AppPkg edk2\AppPkg
> +        cmd /c xcopy /E /I /Y StdLib edk2\StdLib
> +        cmd /c xcopy /E /I /Y StdLibPrivateInternalFiles
> edk2\StdLibPrivateInternalFiles

Use PACKAGES_PATH instead of copying files into edk2 repo

> +
> +    - name: Build EDK2 Base Tools
> +      run: |
> +        cd edk2
> +        dir
> +        edksetup.bat ForceRebuild
> +
> +    - name: Enable python368.inf file in AppPkg.dsc
> +      run: |
> +        cd .github\scripts
> +        dir
> +        python enable_pyuefi_apppkg.py

See comment above to remove this script.

> +
> +    - name: Build Python UEFI
> +      run: |
> +        cd edk2
> +        call edksetup.bat
> +        cd AppPkg\Applications\Python\Python-3.6.8\
> +        python srcprep.py
> +        cd ..\..\..\..\..\
> +        build -t VS2019 -a X64 -b RELEASE -p AppPkg\AppPkg.dsc
> +
> +    - name: Create Python UEFI package
> +      run: |
> +        dir
> +        cd edk2\AppPkg\Applications\Python\Python-3.6.8\
> +        dir
> +        call create_python_pkg.bat VS2019 RELEASE X64 myUEFIPy
> +
> +    - name: List build artifacts
> +      run: |
> +        dir /S edk2\myUEFIPy
> +
> +    - name: Upload build output as artifact
> +      uses: actions/upload-artifact@v4
> +      with:
> +        name: myUEFIPy-build-VS2019-output
> +        path: edk2\myUEFIPy\**\*
> --
> 2.45.1.windows.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#119580): https://edk2.groups.io/g/devel/message/119580
Mute This Topic: https://groups.io/mt/106674325/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to