Merge branch 'mlperf-inference' into mlperf-inference #15
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build wheel and release into PYPI | |
on: | |
release: | |
types: [published] | |
push: | |
branches: | |
- main | |
- mlperf-inference | |
paths: | |
- VERSION | |
- setup.py | |
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@v4 | |
with: | |
fetch-depth: 2 | |
ssh-key: ${{ secrets.DEPLOY_KEY }} | |
# 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: | | |
git config --global user.name mlcommons-bot | |
git config --global user.email "[email protected]" | |
if git diff --name-only $(git merge-base HEAD HEAD~1) | grep -q "VERSION"; then | |
echo "VERSION file has been modified" | |
echo "::set-output name=version_changed::true" | |
new_version=$(cat VERSION) | |
else | |
echo "VERSION file has NOT been modified" | |
echo "::set-output name=version_changed::false" | |
fi | |
echo "::set-output name=new_version::$new_version" | |
# Step 4: Increment version if VERSION was not changed | |
- name: Increment version if necessary | |
id: do_version_increment | |
if: steps.version_changed.outputs.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 "::set-output name=new_version::$new_version" | |
# Step 5: Commit the updated version to the repository | |
- name: Commit updated version | |
if: steps.version_changed.outputs.version_changed == 'false' | |
run: | | |
git add VERSION | |
git commit -m "Increment version to ${{ steps.do_version_increment.outputs.new_version }}" | |
git push | |
# Step 6: Update the git hash in the repository | |
- name: Commit updated git hash | |
run: | | |
python3 get_git_version.py > git_commit_hash.txt | |
git add git_commit_hash.txt | |
git commit -m "Updated git_commit_hash.txt" | |
git push | |
# Step 7: Install required dependencies | |
- name: Install requirements | |
run: python3 -m pip install setuptools wheel build | |
# Step 8: Build the Python wheel | |
- name: Build wheels | |
working-directory: ./ | |
run: python3 -m build && rm dist/*.whl | |
# Step 9: 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 |