From 38b53566460dae737cab6462d18b7a43087ca76a Mon Sep 17 00:00:00 2001 From: Micah Gale Date: Thu, 11 Jan 2024 07:40:09 -0600 Subject: [PATCH] Create Github Actions (#2) This just took ... so ... many tries. --- .github/workflows/deploy.yml | 107 +++++++++++++++++++++++++++++++++++ .github/workflows/main.yml | 91 +++++++++++++++++++++++++++++ montepy/__init__.py | 2 +- montepy/errors.py | 3 +- 4 files changed, 200 insertions(+), 3 deletions(-) create mode 100644 .github/workflows/deploy.yml create mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 00000000..893a831a --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,107 @@ +name: Deploy + +on: + push: + branches: [main] + pull_request: + branches: [main] + +jobs: + last-minute-test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: set up python 3.8 + uses: actions/setup-python@v4 + with: + python-version: 3.8 + - run: pip install --user -r requirements/dev.txt + - run: python -m pytest + + build-pages: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + steps: + - name: Configure git + env: + TOKEN: ${{ secrets.ACCESS_TOKEN }} + run: git config --global url."https://${TOKEN}:x-oauth-basic@github.com/".insteadOf "https://github.com/" + - uses: actions/checkout@v4 + - uses: actions/setup-python@v4 + with: + python-version: 3.8 + - run: pip install --user montepy[doc] + - run: cd doc && make html + - uses: actions/configure-pages@v4 + - uses: actions/upload-pages-artifact@v3 + with: + name: deploy-pages + path: doc/build/html/ + + deploy-pages: + permissions: + contents: read + pages: write # to deploy to Pages + id-token: write # to verify the deployment originates from an appropriate source + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + needs: [build-pages, last-minute-test] + runs-on: ubuntu-latest + steps: + - run: ls -l + - uses: actions/download-artifact@v4 + with: + name: deploy-pages + - run: ls -l + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 + with: + artifact_name: deploy-pages + + + deploy-test-pypi: + environment: + name: test-pypi + url: https://test.pypi.org/p/montepy # Replace with your PyPI project name + needs: [deploy-pages] + permissions: + contents: read + id-token: write + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v4 + with: + python-version: 3.8 + - run: python -m pip install build + - run: python -m build --sdist --wheel + - name: Publish distribution 📦 to PyPI + uses: pypa/gh-action-pypi-publish@release/v1 + with: + repository-url: https://test.pypi.org/legacy/ + + deploy-pypi: + environment: + name: pypi + url: https://pypi.org/p/montepy # Replace with your PyPI project name + needs: [deploy-pages, deploy-test-pypi] + permissions: + contents: read + id-token: write + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v4 + with: + python-version: 3.8 + - run: python -m pip install build + - run: python -m build --sdist --wheel + - name: Publish distribution 📦 to PyPI + uses: pypa/gh-action-pypi-publish@release/v1 + + + diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 00000000..d635a22b --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,91 @@ +name: Test package + +on: [push] + +jobs: + build: + runs-on: ubuntu-latest + strategy: + matrix: + python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] + + steps: + - uses: actions/checkout@v4 + - name: set up python ${{ matrix.python-version }} + uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.python-version }} + - run: pip install --upgrade pip build + - run: pip install -r requirements/common.txt + - run: python -m build --sdist --wheel + - run: pip install . + - run: pip uninstall -y montepy + - run: pip install --user dist/*.whl + - run: pip uninstall -y montepy + - run: pip install --user dist/*.tar.gz + - run: pip install --user montepy[test] + - run: pip install --user montepy[doc] + - run: pip freeze + - name: Upload build artifacts + uses: actions/upload-artifact@v3 + with: + name: build + path: dist/* + + test: + runs-on: ubuntu-latest + strategy: + matrix: + python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] + + steps: + - uses: actions/checkout@v4 + - name: set up python ${{ matrix.python-version }} + uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.python-version }} + - run: pip install --user -r requirements/dev.txt + - run: coverage run -m pytest --junitxml=test_report.xml + - run: coverage report + - run: coverage xml + - name: Upload test report + uses: actions/upload-artifact@v3 + with: + name: test + path: test_report.xml + - name: Upload coverage report + uses: actions/upload-artifact@v3 + with: + name: coverage + path: coverage.xml + + doc-test: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - name: set up python 3.8 + uses: actions/setup-python@v4 + with: + python-version: 3.8 + - run: pip install montepy[doc] + - run: sphinx-build doc/source/ doc/build/ -W --keep-going -E + - run: sphinx-build -b html doc/source/ doc/build/html + - uses: actions/upload-artifact@v3 + with: + name: website + path: doc/build/html + + format-test: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - name: set up python 3.8 + uses: actions/setup-python@v4 + with: + python-version: 3.8 + - run: pip install --user -r requirements/dev.txt + - run: black --check montepy/ tests/ + + diff --git a/montepy/__init__.py b/montepy/__init__.py index 40fed7d2..5f35202d 100644 --- a/montepy/__init__.py +++ b/montepy/__init__.py @@ -23,7 +23,7 @@ from montepy.universe import Universe import sys -__version__ = "0.2.4" +__version__ = "0.2.5dev1" # enable deprecated warnings for users if not sys.warnoptions: import os, warnings diff --git a/montepy/errors.py b/montepy/errors.py index a61b73b3..f0c2464d 100644 --- a/montepy/errors.py +++ b/montepy/errors.py @@ -10,8 +10,7 @@ def __init__(self, message): class MalformedInputError(ValueError): """ - <<<<<<< HEAD - Raised when there is an error with the MCNP input not related to the parser. + Raised when there is an error with the MCNP input not related to the parser. """ def __init__(self, input, message):