Continuous Integration #30
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
# Portions of this file contributed by NIST are governed by the | |
# following statement: | |
# | |
# 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 within the United States. 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 | |
schedule: | |
- cron: '15 5 * * TUE' | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: | |
- '3.8' | |
- '3.12' | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v4 | |
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 wheel | |
python setup.py sdist bdist_wheel | |
# 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 pipleines for test consumption | |
- name: Upload HTML Docs | |
uses: actions/upload-artifact@v3 | |
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/* |