Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
02dfeda
Updated with gitignore and no setup.py
sei-vsarvepalli Nov 24, 2025
7504376
workflows added
sei-vsarvepalli Nov 24, 2025
97c351a
Updates to only run uefi_support build
sei-vsarvepalli Nov 24, 2025
9ce8782
cibuildwheel with uefi_support build
sei-vsarvepalli Nov 24, 2025
a45f3e2
Continued struggle for automation
sei-vsarvepalli Nov 25, 2025
d6b4c35
Updates small
sei-vsarvepalli Nov 25, 2025
56bb7a8
Added submodules
sei-vsarvepalli Nov 25, 2025
803c4e1
Updated according to actionlint
sei-vsarvepalli Nov 25, 2025
b3c928d
Without Windows
sei-vsarvepalli Nov 25, 2025
4952b37
Updated dist folder to os specific
sei-vsarvepalli Nov 25, 2025
f734404
Remove python-dist name field
sei-vsarvepalli Nov 25, 2025
dffe3eb
Add environment
sei-vsarvepalli Nov 25, 2025
26181b1
Move to git tags for version control
sei-vsarvepalli Nov 25, 2025
e8c3968
Use Git versioning
sei-vsarvepalli Nov 25, 2025
6a89690
Remove bug on _has_compile
sei-vsarvepalli Nov 25, 2025
8a0d22e
Remove all version notations everywhere
sei-vsarvepalli Nov 26, 2025
9e79c43
add dynamic version number
sei-vsarvepalli Nov 26, 2025
a5178be
added twine and pkginfo updates
sei-vsarvepalli Nov 26, 2025
bed8d2d
Update name to cert-uefi-parser
sei-vsarvepalli Nov 26, 2025
1232799
Updates to support Windows and friendly appearnces
sei-vsarvepalli Nov 26, 2025
815fe4d
Remove license-files syntax
sei-vsarvepalli Nov 26, 2025
0ea82db
Updates to use mingw on Windows
sei-vsarvepalli Nov 26, 2025
edde2cc
Remove g++ for windows environment
sei-vsarvepalli Nov 26, 2025
967b3fa
Use venv in Windows
sei-vsarvepalli Nov 26, 2025
dacf387
update VENV PATH
sei-vsarvepalli Nov 26, 2025
1a8ff1d
python-windows woes
sei-vsarvepalli Nov 26, 2025
68cecf4
workflow error
sei-vsarvepalli Nov 26, 2025
ddd1334
Install git in windows
sei-vsarvepalli Nov 26, 2025
b304947
Install pacman git in windows
sei-vsarvepalli Nov 26, 2025
9725404
More debug statement and git setup approriately
sei-vsarvepalli Nov 26, 2025
048d46c
Windows fallback versioning
sei-vsarvepalli Nov 26, 2025
6413753
Windows fallback versioning GITHUB_REFNAME
sei-vsarvepalli Nov 26, 2025
7bda790
Github ref_name is problematic still
sei-vsarvepalli Nov 26, 2025
af2b5eb
replace variable XNAME
sei-vsarvepalli Nov 26, 2025
046753a
user XNAME and XVERSION
sei-vsarvepalli Nov 26, 2025
c5da748
Update build after env is set
sei-vsarvepalli Nov 26, 2025
33fb770
Remove debug statements and UEFI in classifiers field
sei-vsarvepalli Nov 26, 2025
5c7011a
Update the wheel file for pypi
sei-vsarvepalli Nov 26, 2025
4d65145
Add missing files to MANIFEST.in so that `python -m build .` works.
sei-ccohen Dec 4, 2025
3dabc8b
Change how license files are handled for the newer version of setupto…
sei-ccohen Dec 4, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
121 changes: 121 additions & 0 deletions .github/workflows/pyblish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
name: Build and Publish to PyPI

on:
push:
tags:
- "v*"

permissions:
id-token: write
contents: read

jobs:
build:
name: Build wheels & sdist
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]

runs-on: ${{ matrix.os }}

steps:
- name: Checkout repository and submodules
uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: recursive

#################################################################
# LINUX + macOS: cibuildwheel
#################################################################
- name: Set up Python (Linux/macOS)
if: matrix.os != 'windows-latest'
uses: actions/setup-python@v5
with:
python-version: "3.x"

- name: Install build tools (Linux/macOS)
if: matrix.os != 'windows-latest'
run: |
python -m pip install --upgrade pip
pip install build cibuildwheel

- name: Build wheels (Linux/macOS)
if: matrix.os != 'windows-latest'
run: cibuildwheel --output-dir dist

#################################################################
# WINDOWS: Build with MinGW (avoids MSVC incompatibilities)
#################################################################
- name: Install MSYS2 + MinGW
if: matrix.os == 'windows-latest'
uses: msys2/setup-msys2@v2
with:
update: true
install: >
mingw-w64-x86_64-gcc
mingw-w64-x86_64-python
git

- name: Build wheel (Windows via MinGW)
if: matrix.os == 'windows-latest'
shell: msys2 {0}
env:
XNAME: ${{ github.ref_name }}
run: |
VENV_PATH=$(cygpath -u "$PWD/venv")
python3 -m venv "$VENV_PATH"
source "$VENV_PATH/bin/activate"
XVERSION=${XNAME#v}
export SETUPTOOLS_SCM_PRETEND_VERSION_FOR_CERT_UEFI_SUPPORT="$XVERSION"
python3.exe -m pip install --upgrade pip || true
python -m pip install --upgrade build
python -m build --wheel --outdir dist
cd dist
for whl in *.whl; do
newwhl=$(echo "$whl" | sed 's/mingw_x86_64_msvcrt_gnu/win_amd64/')
mv "$whl" "$newwhl"
echo "$whl" "$newwhl"
done

#################################################################
# Source Distribution (only once)
#################################################################
- name: Build source distribution (Linux only)
if: matrix.os == 'ubuntu-latest'
run: python -m build --sdist --outdir dist

#################################################################
# Upload Artifacts
#################################################################
- name: Upload built artifacts
uses: actions/upload-artifact@v4
with:
name: python-dist-${{ matrix.os }}
path: dist/*


publish:
name: Publish to PyPI via Trusted Publishing
needs: build
runs-on: ubuntu-latest
environment: pypi

permissions:
id-token: write
contents: read

steps:
- uses: actions/download-artifact@v4
with:
pattern: python-dist-*
path: dist
merge-multiple: true

- name: Update Packaging Tools
run: python -m pip install --upgrade twine pkginfo

- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
skip-existing: false
98 changes: 98 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
.DS_Store
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
*~

# C extensions
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
pip-wheel-metadata/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# PyBuilder
target/

# IPython
profile_default/
ipython_config.py

# pyenv
.python-version

# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock

# PEP 582; used by e.g. github.com/David-OConnor/pyflow
__pypackages__/

# Celery stuff
celerybeat-schedule
celerybeat.pid

# SageMath parsed files
*.sage.py

# Environments
.env
.venv
env/
*venv/
venv/
ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# Pyre type checker
.pyre/
_version.py
node_modules
tmp
Loading