From c7b5b86753fdb67742075ada61b1a68c6fae3849 Mon Sep 17 00:00:00 2001 From: Ceaseless04 Date: Tue, 3 Mar 2026 00:06:33 -0500 Subject: [PATCH] testing new github workflow --- .github/workflows/python-package.yml | 58 +++++++++++++++++++++++++--- 1 file changed, 53 insertions(+), 5 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 9a5d531..887d811 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -1,13 +1,27 @@ +# .github/workflows/python-package.yml + name: CI on: push: - branches: [ main ] + # run on every branch – test job will always run, publish only on main + branches: ['*'] pull_request: - branches: [ main ] + branches: ['*'] + workflow_dispatch: + inputs: + publish_to: + description: 'Where to publish package' + required: true + default: 'pypi' + type: choice + options: + - pypi + - testpypi jobs: - build: + test: + name: Run tests runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 @@ -19,6 +33,40 @@ jobs: run: | python -m pip install --upgrade pip pip install -r requirements.txt - - name: Run tests + - name: Run pytest + run: python -m pytest -q + + publish: + name: Build & publish + needs: test + runs-on: ubuntu-latest + # only run automatically when main is updated, or when the workflow + # is manually dispatched (for dev/test uploads) + if: > + github.ref == 'refs/heads/main' || + github.event_name == 'workflow_dispatch' + environment: + # optional: create a "production" / "dev" environment in repo settings + name: ${{ github.ref == 'refs/heads/main' && 'production' || 'dev' }} + steps: + - uses: actions/checkout@v4 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.11' + - name: Build wheel/sdist + run: | + python -m pip install --upgrade build + python -m build + - name: Publish to PyPI/TestPyPI run: | - python -m pytest -q + if [ "${{ github.event_name }}" = "workflow_dispatch" ] && \ + [ "${{ github.event.inputs.publish_to }}" = "testpypi" ]; then + repo="https://test.pypi.org/legacy/" + token="${{ secrets.TEST_PYPI_API_TOKEN }}" + else + repo="https://upload.pypi.org/legacy/" + token="${{ secrets.PYPI_API_TOKEN }}" + fi + python -m pip install --upgrade twine + python -m twine upload --repository-url "$repo" -u __token__ -p "$token" dist/* \ No newline at end of file