Skip to content

Commit

Permalink
edk2-libc : add github actions workflow to build PyUEFI using gcc
Browse files Browse the repository at this point in the history
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4794

This commit adds github actions workflow to build python uefi
interpreter with gcc tool chain on Ubuntu Linux system.
The build-python-uefi-gcc.yaml file under .github/workflows
implements the build action for building the pyuefi interpreter with
gcc tool chain.

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>
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com>
  • Loading branch information
jpshivakavi committed Jul 2, 2024
1 parent 0626ad0 commit caea801
Show file tree
Hide file tree
Showing 2 changed files with 89 additions and 20 deletions.
69 changes: 69 additions & 0 deletions .github/workflows/build-python-uefi-gcc.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
# GitHub actions workflow to build python uefi using gcc
#
# Copyright (c) 2023-2024, Intel Corporation. All rights reserved.
# SPDX-License-Identifier: BSD-2-Clause-Patent
#

name: Build Python Interpreter for UEFI with GCC

on: [push, pull_request]

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.x'

- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y build-essential uuid-dev iasl git nasm python3-distutils
- name: Clone EDK2
run: |
git clone https://github.com/tianocore/edk2.git
cd edk2
git submodule update --init
- name: Build EDK2 Base Tools
run: |
cd edk2
. edksetup.sh
make -C BaseTools
- name: Run srcprep.py
run: |
cd AppPkg/Applications/Python/Python-3.6.8/
python3 srcprep.py
- name: Build Python UEFI
run: |
export PACKAGES_PATH=`pwd`/edk2:`pwd`:
export EDK2_LIBC_PATH=`pwd`
cd edk2
. edksetup.sh
build -t GCC5 -a X64 -b RELEASE -p $EDK2_LIBC_PATH/AppPkg/AppPkg.dsc -D BUILD_PYTHON368
- name: Create PyUEFI package
run: |
export WORKSPACE=`pwd`/edk2
echo WORKSPACE is $WORKSPACE
export EDK2_LIBC_PATH=`pwd`
. AppPkg/Applications/Python/Python-3.6.8/create_python_pkg.sh GCC5 RELEASE X64 myUEFIPy
- name: List build artifacts
run: |
ls -R edk2/myUEFIPy
- name: Upload build output as artifact
uses: actions/upload-artifact@v4
with:
name: myUEFIPy-build-gcc-output
path: edk2/myUEFIPy/**/*
40 changes: 20 additions & 20 deletions AppPkg/Applications/Python/Python-3.6.8/create_python_pkg.sh
Original file line number Diff line number Diff line change
Expand Up @@ -59,24 +59,24 @@ then
exit
fi

echo current working directory `pwd`
echo changing working directory to $WORKSPACE
cd $WORKSPACE
ls

# check if the EDK2_LIBC_PATH environment variable set or not
if [ -z $EDK2_LIBC_PATH ]
then
echo Warning: EDK2_LIBC_PATH environment variable is not set
echo It should be set to edk2-libc folder path.
echo.
echo Assuming that edk2-libc contents are copied to edk2 folder
echo at compilation time, setting this variable to edk2 path.
export EDK2_LIBC_PATH=$WORKSPACE
fi

echo edk2 libc path $EDK2_LIBC_PATH

echo current working directory `pwd`
echo changing working directory to $WORKSPACE
cd $WORKSPACE
ls

# check if the EDK2_LIBC_PATH environment variable set or not
if [ -z $EDK2_LIBC_PATH ]
then
echo Warning: EDK2_LIBC_PATH environment variable is not set
echo It should be set to edk2-libc folder path.
echo.
echo Assuming that edk2-libc contents are copied to edk2 folder
echo at compilation time, setting this variable to edk2 path.
export EDK2_LIBC_PATH=$WORKSPACE
fi

echo edk2 libc path $EDK2_LIBC_PATH

PYTHON_BIN="Build/AppPkg/$TARGET"_"$TOOL_CHAIN_TAG/$ARCH/Python.efi"
if [ ! -f $PYTHON_BIN ]
then
Expand All @@ -103,8 +103,8 @@ then
mkdir -p $OUT_FOLDER/EFI/StdLib/etc
fi

cp -rf $EDK2_LIBC_PATH/AppPkg/Applications/Python/Python-3.6.8/Lib/* $OUT_FOLDER/EFI/StdLib/lib/python36.8/
cp -rf $EDK2_LIBC_PATH/StdLib/Efi/StdLib/etc/* $OUT_FOLDER/EFI/StdLib/etc/
cp -rf $EDK2_LIBC_PATH/AppPkg/Applications/Python/Python-3.6.8/Lib/* $OUT_FOLDER/EFI/StdLib/lib/python36.8/
cp -rf $EDK2_LIBC_PATH/StdLib/Efi/StdLib/etc/* $OUT_FOLDER/EFI/StdLib/etc/

if [ ${OUT_FOLDER:0:1} == "/" ]
then
Expand Down

0 comments on commit caea801

Please sign in to comment.