name: build on: push: branches: [ main ] pull_request: branches: [ main ] release: types: - published jobs: test: strategy: matrix: python-version: - 3.6 - 3.7 - 3.8 - 3.9 - "3.10" - "3.11" include: - os: ubuntu-latest # older versions need older OS - python-version: 3.6 os: ubuntu-20.04 runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | python -m pip install -U -r tests/requirements.txt - name: Install run: | python -m pip install . - name: Test run: | cd tests export SKIP_SYNTH_TESTS=1 export STUB_SIMULATOR=1 pytest #------------------------------------------------------------------------------- lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up Python uses: actions/setup-python@v4 with: python-version: "3.10" - name: Install dependencies run: | python -m pip install -U pylint - name: Install run: | python -m pip install . - name: Run Lint run: | pylint --rcfile tests/pylint.rc peakrdl_regblock #------------------------------------------------------------------------------- mypy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up Python uses: actions/setup-python@v4 with: python-version: "3.10" - name: Install dependencies run: | python -m pip install -U mypy - name: Type Check run: | mypy --config-file tests/mypy.ini src/peakrdl_regblock #------------------------------------------------------------------------------- build_sdist: needs: - test - lint - mypy name: Build source distribution runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 name: Install Python with: python-version: "3.10" - name: Build sdist run: python setup.py sdist - uses: actions/upload-artifact@v3 with: path: dist/*.tar.gz #------------------------------------------------------------------------------- deploy: needs: - build_sdist runs-on: ubuntu-latest # Only publish when a GitHub Release is created. if: github.event_name == 'release' steps: - uses: actions/download-artifact@v3 with: name: artifact path: dist - uses: pypa/gh-action-pypi-publish@release/v1 with: user: __token__ password: ${{ secrets.pypi_password }}