Merge pull request #107 from casework/use_build_module_in_ci #228
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
# This software was developed at the National Institute of Standards | |
# and Technology by employees of the Federal Government in the course | |
# of their official duties. Pursuant to title 17 Section 105 of the | |
# United States Code this software is not subject to copyright | |
# protection and is in the public domain. NIST assumes no | |
# responsibility whatsoever for its use by other parties, and makes | |
# no guarantees, expressed or implied, about its quality, | |
# reliability, or any other characteristic. | |
# | |
# We would appreciate acknowledgement if the software is used. | |
name: Continuous Integration | |
on: | |
push: | |
branches: | |
- main | |
- develop | |
pull_request: | |
branches: | |
- main | |
- develop | |
release: | |
types: | |
- published | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: | |
- '3.9' | |
- '3.12' | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' | |
java-version: '11' | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Pre-commit Checks | |
run: | | |
pip -q install pre-commit | |
pre-commit run --all-files | |
- name: Start from clean state | |
run: make clean | |
- name: Run tests | |
run: make PYTHON3=python check | |
# Build the binary wheel as well as the source tar | |
- name: Build Objects | |
run: | | |
pip install -q twine build | |
python -m build | |
# Ensure the objects were packaged correctly and there wasn't an issue with | |
# the compilation or packaging process. | |
- name: Check Objects | |
run: twine check dist/* | |
# Upload the packages on all develop and main pipelines for test consumption | |
- name: Upload HTML Docs | |
uses: actions/upload-artifact@v4 | |
with: | |
name: packages | |
path: ./dist/ | |
# If this commit is the result of a Git tag, push the wheel and tar packages | |
# to the PyPi registry | |
- name: Publish to PyPI | |
if: github.event_name == 'release' && github.event.action == 'published' | |
run: twine upload --repository-url https://upload.pypi.org/legacy/ -u __token__ -p ${{ secrets.PYPI_API_TOKEN }} --skip-existing --verbose dist/* |