From: "Jayaprakash, N" <n.jayaprakash@intel.com>
To: devel@edk2.groups.io
Cc: Jayaprakash N <n.jayaprakash@intel.com>,
Rebecca Cran <rebecca@bsdio.com>,
Michael D Kinney <michael.d.kinney@intel.com>
Subject: [edk2-devel] [edk2-libc Patch 1/1] edk2-libc : add github actions workflow to build PyUEFI using VS2019
Date: Fri, 14 Jun 2024 22:31:31 +0530 [thread overview]
Message-ID: <20240614170247.1201-2-n.jayaprakash@intel.com> (raw)
In-Reply-To: <20240614170247.1201-1-n.jayaprakash@intel.com>
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 <rebecca@bsdio.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Jayaprakash N <n.jayaprakash@intel.com>
Signed-off-by: Jayaprakash N <n.jayaprakash@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
+'''
+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)
+
+ 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 @@
+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
+
+ - 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
+
+ - 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 (#119578): https://edk2.groups.io/g/devel/message/119578
Mute This Topic: https://groups.io/mt/106674325/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
next prev parent reply other threads:[~2024-06-14 17:03 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-14 17:01 [edk2-devel] [edk2-libc Patch 0/1] add github actions workflow to build Python UEFI with VS2019 Jayaprakash, N
2024-06-14 17:01 ` Jayaprakash, N [this message]
2024-06-15 1:41 ` [edk2-devel] [edk2-libc Patch 1/1] edk2-libc : add github actions workflow to build PyUEFI using VS2019 Michael D Kinney
2024-06-15 8:18 ` Jayaprakash, N
2024-06-15 15:32 ` Michael D Kinney
2024-06-18 6:55 ` Jayaprakash, N
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240614170247.1201-2-n.jayaprakash@intel.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox