name: build on: push: branches: - main - 'dev/**' pull_request: branches: [ main ] release: types: - published # Allows you to run this workflow manually from the Actions tab workflow_dispatch: jobs: test: strategy: matrix: python-version: - "3.10" - "3.11" - "3.12" - "3.13" - "3.14" include: - os: ubuntu-latest runs-on: ${{ matrix.os }} steps: - uses: ./.github/actions/setup-uv-python with: python-version: ${{ matrix.python-version }} groups: "test" - name: Test run: | cd tests pytest --cov=peakrdl_busdecoder --synth-tool skip --sim-tool stub - name: Coveralls env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} COVERALLS_PARALLEL: true run: | cd tests coveralls --service=github finish_coveralls: needs: test runs-on: ubuntu-latest steps: - name: Setup Python uses: actions/setup-python@v4 with: python-version: 3.x - name: Coveralls env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} COVERALLS_PARALLEL: true run: | python -m pip install coveralls>=3.0.0 coveralls --service=github --finish #------------------------------------------------------------------------------- format: runs-on: ubuntu-latest steps: - name: Setup (Python + uv + sync) uses: ./.github/actions/setup-uv-python with: python-version: "3.10" groups: "tools" - name: Ruff format (check only) run: uvx ruff format --check . #------------------------------------------------------------------------------- lint: runs-on: ubuntu-latest steps: - name: Setup (Python + uv + sync) uses: ./.github/actions/setup-uv-python with: python-version: "3.10" groups: "tools" - name: Ruff lint run: uvx ruff check --output-format=github . #------------------------------------------------------------------------------- typecheck: steps: - name: Setup (Python + uv + sync) uses: ./.github/actions/setup-uv-python with: python-version: "3.10" - name: Pyrefly type check run: uvx pyrefly check --summarize-errors #------------------------------------------------------------------------------- build: needs: - test - format - lint - typecheck name: Build distributions runs-on: ubuntu-latest steps: - name: Setup (Python + uv + sync) uses: ./.github/actions/setup-uv-python with: python-version: "3.10" - name: Build Package run: uv build - uses: actions/upload-artifact@v4 with: name: dist path: | dist/*.tar.gz dist/*.whl #------------------------------------------------------------------------------- # deploy: # needs: # - build # runs-on: ubuntu-latest # environment: release # permissions: # id-token: write # # Only publish when a GitHub Release is created. # if: github.event_name == 'release' # steps: # - uses: actions/download-artifact@v4 # with: # name: dist # path: dist # - uses: pypa/gh-action-pypi-publish@release/v1