Hi Mike, I am planning to split this PR into multiple patches.
The first one is for the suggestion you provided to include conditional compilation for Python368.inf in AppPkg.dsc and to pass a macro through -D flag to the build command. I have made the necessary changes and verified them locally. After that created a patch and submitted for the review. Please review and approve the same. This PR I will use only for setting up the github actions for auto build. Rest all the changes will be done through different PRs. Regards, JP -----Original Message----- From: Kinney, Michael D <michael.d.kin...@intel.com> Sent: Saturday, June 15, 2024 9:03 PM To: Jayaprakash, N <n.jayaprak...@intel.com>; devel@edk2.groups.io Cc: Rebecca Cran <rebe...@bsdio.com>; Kinney, Michael D <michael.d.kin...@intel.com> Subject: RE: [edk2-libc Patch 1/1] edk2-libc : add github actions workflow to build PyUEFI using VS2019 > -----Original Message----- > From: Jayaprakash, N <n.jayaprak...@intel.com> > Sent: Saturday, June 15, 2024 1:18 AM > To: Kinney, Michael D <michael.d.kin...@intel.com>; > devel@edk2.groups.io > Cc: Rebecca Cran <rebe...@bsdio.com> > Subject: RE: [edk2-libc Patch 1/1] edk2-libc : add github actions > workflow to build PyUEFI using VS2019 > > Thanks Mike for your comments. > Please find my responses inline. > > Regards, > JP > > -----Original Message----- > From: Kinney, Michael D <michael.d.kin...@intel.com> > Sent: Saturday, June 15, 2024 7:12 AM > To: Jayaprakash, N <n.jayaprak...@intel.com>; devel@edk2.groups.io > Cc: Rebecca Cran <rebe...@bsdio.com>; Kinney, Michael D > <michael.d.kin...@intel.com> > Subject: RE: [edk2-libc Patch 1/1] edk2-libc : add github actions > workflow to build PyUEFI using VS2019 > > 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 > <<JP>> Will add copyright and license > > > +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. > > <<JP>> > The reason I chose this approach is because we cannot uncomment this > file by default in DSC file as it needs few additional steps to be > done before the compilation. > Also adding another DSC file can lead to regular maintenance of the > DSC file whenever there are changes to it, we need update in two files. > This custom script makes the process is and it keeps the github > actions specific things are completely isolated from the rest of the code > base. > Would like to continue with this script rather than having a duplicate > DCS file specifically for github actions. You can add a !if statement around this INF so by default it is not built and you can add a -D flag to the build command to build the interpreter. > > > + > > + 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 > > <<JP>> Will add and send updated patch for review. > > > +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 <<JP>> I > will try and make necessary changes. > > > + > > + - 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. > > <<JP>> Would like to keep this script as reasoned for the comment above. > > > + > > + - 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 (#119605): https://edk2.groups.io/g/devel/message/119605 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] -=-=-=-=-=-=-=-=-=-=-=-