Skip to content
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
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
20 changes: 20 additions & 0 deletions .github/reusable-build/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: Reusable action which builds struct2tensor

Comment thread
peytondmurray marked this conversation as resolved.
inputs:
python-version:
description: 'Python version'
required: true
runs:
using: 'composite'
steps:
- name: Build the package for Python ${{ inputs.python-version }}
shell: bash
run: |
docker compose build --build-arg PYTHON_VERSION=${{ inputs.python-version }} manylinux2014
docker compose run -e TF_VERSION=RELEASED_TF_2 manylinux2014

- name: Upload wheel artifact for Python ${{ inputs.python-version }}
uses: actions/upload-artifact@v4
with:
name: ml-metadata-wheel-py${{ inputs.python-version }}
path: dist/*.whl
Comment thread
peytondmurray marked this conversation as resolved.
64 changes: 64 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
name: Build struct2tensor wheels

on:
pull_request:
workflow_dispatch:
release:
types: [published]

jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.9", "3.10", "3.11"]

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

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

- name: Build package
id: build-package
uses: ./.github/reusable-build
with:
python-version: ${{ matrix.python-version }}

- name: List and check wheels
shell: bash
run: |
# Pin transitive dependency on pkginfo until https://github.com/pypa/twine/issues/1070 is
# fixed
pip install twine pkginfo>=1.10.0
Comment thread
peytondmurray marked this conversation as resolved.
Outdated
${{ matrix.ls || 'ls -lh' }} dist/
twine check dist/*
Comment thread
peytondmurray marked this conversation as resolved.
Outdated

upload_to_pypi:
name: Upload to PyPI
runs-on: ubuntu-latest
if: (github.event_name == 'release' && startsWith(github.ref, 'refs/tags')) || (github.event_name == 'workflow_dispatch')
Comment thread
peytondmurray marked this conversation as resolved.
Outdated
needs: [build]
environment:
name: pypi
url: https://pypi.org/p/struct2tensor/
permissions:
id-token: write
Comment thread
peytondmurray marked this conversation as resolved.
steps:
- name: Retrieve wheels
uses: actions/download-artifact@v4
with:
merge-multiple: true
path: wheels

- name: List the build artifacts
run: |
ls -lAs wheels/

Comment thread
peytondmurray marked this conversation as resolved.
- name: Upload to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
packages_dir: wheels/