Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create build_wheels.yml | GitHut action to release pypi wheel #392

Merged
merged 12 commits into from
Nov 12, 2024
91 changes: 91 additions & 0 deletions .github/workflows/build_wheel.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
name: Build wheels and release them into PYPI

on:
release:
types: [published]
push:
branches:
- master
paths:
- VERSION
- setup.py
- mlperf_logging/**

jobs:
build_wheels:
if: github.repository_owner == 'mlcommons'
name: Build wheel
runs-on: ubuntu-latest
environment: release

permissions:
id-token: write
contents: write

strategy:
fail-fast: false
steps:
# Step 1: Checkout the code
- uses: actions/checkout@v3
with:
fetch-depth: 2

# Step 2: Set up Python
- uses: actions/setup-python@v3

# Step 3: Check if VERSION file has changed in this push
- name: Check if VERSION file has changed
id: version_changed
run: |
if git diff --name-only HEAD~1 | grep -q "VERSION"; then
echo "version_changed=true" >> $GITHUB_ENV
new_version=$(cat loadgen/VERSION.txt)
echo "new_version=$new_version" >> $GITHUB_ENV
else
echo "VERSION file has NOT been modified"
echo "version_changed=false" >> $GITHUB_ENV
fi

# Step 4: Increment version if VERSION was not changed
- name: Increment version if necessary
if: env.version_changed == 'false'
run: |
# Check if VERSION file exists, else initialize it
if [ ! -f VERSION ]; then
echo "0.0.0" > VERSION
fi

version=$(cat VERSION)
IFS='.' read -r major minor patch <<< "$version"
patch=$((patch + 1))
new_version="$major.$minor.$patch"
echo $new_version > VERSION
echo "New version: $new_version"
echo "new_version=$new_version" >> $GITHUB_ENV

# Step 5: Commit the updated version to the repository
- name: Commit updated version
run: |
git config --global user.name "${{ github.actor }}"
git config --global user.email "${{ github.actor }}@users.noreply.github.com"
git add VERSION
git commit -m "Increment version to $new_version"
git push

# Step 6: Install required dependencies
- name: Install requirements
run: python3 -m pip install setuptools wheel

# Step 7: Build the Python wheel
- name: Build wheels
run: python3 setup.py bdist_wheel

# Step 8: Publish to PyPI
- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
verify-metadata: true
skip-existing: true
packages-dir: dist
repository-url: https://upload.pypi.org/legacy/
verbose: true
Loading