diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000..89eead1 --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,39 @@ +--- +name: Publish to PyPI + +"on": + push: + branches: + - 'master' + tags: + - '*' + workflow_dispatch: + +permissions: + contents: read + +jobs: + build: + + runs-on: ubuntu-latest + + environment: release + permissions: + id-token: write + + steps: + - uses: actions/checkout@v6 + - name: Set up Python + uses: actions/setup-python@v6 + with: + python-version: '3.x' + cache: 'pip' + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install hatch + - name: Build package + run: hatch build + - name: Publish package distributions to PyPI + uses: pypa/gh-action-pypi-publish@release/v1 + if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/2') diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml deleted file mode 100644 index d251ae1..0000000 --- a/.github/workflows/python-package.yml +++ /dev/null @@ -1,34 +0,0 @@ ---- -name: Python package -on: - push: - pull_request: -jobs: - build: - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] - steps: - - uses: actions/checkout@v6 - with: - fetch-depth: 0 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v6 - with: - python-version: ${{ matrix.python-version }} - - name: Install dependencies - run: | - python -m pip install --upgrade pip - python -m pip install ruff hatchling hatch-vcs - python -m pip install ".[test]" - - name: Lint with ruff - run: | - ruff check . - - name: Format with ruff - run: | - ruff format --check . - - name: Test with testtools - run: | - python -m testtools.run testresources.tests.test_suite diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..bae7589 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,77 @@ +--- +name: Test + +on: [push, pull_request] + +jobs: + lint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + with: + fetch-depth: 0 + + - name: Set up Python 3.13 + uses: actions/setup-python@v6 + with: + python-version: "3.13" + + - name: Cache + uses: actions/cache@v5 + with: + path: ~/.cache/pip + key: ${{ runner.os }}-lint-${{ hashFiles('**/setup.py') }} + restore-keys: | + ${{ runner.os }}-lint- + + - name: Install dependencies + run: | + python -m pip install --upgrade pip wheel + python -m pip install ruff + + - name: Ruff + run: | + python -m ruff check . + python -m ruff format --check . + + test: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] + + steps: + - uses: actions/checkout@v6 + with: + fetch-depth: 0 + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v6 + with: + python-version: ${{ matrix.python-version }} + + - name: Cache + uses: actions/cache@v5 + with: + path: ~/.cache/pip + key: ${{ matrix.os }}-${{ matrix.python-version }}-${{ hashFiles('**/setup.py') }} + restore-keys: | + ${{ matrix.os }}-${{ matrix.python-version }}- + + - name: Install dependencies + run: | + python -m pip install --upgrade pip wheel + python -m pip install ".[test]" + + - name: Run tests + run: | + python -W once -m testtools.run testresources.tests.test_suite + + success: + needs: ["lint", "test"] + runs-on: ubuntu-latest + name: test successful + steps: + - name: Success + run: echo Test successful