name: build on: push: branches: - master - 'dev/**' pull_request: branches: [ master ] release: types: - published # Allows you to run this workflow manually from the Actions tab workflow_dispatch: jobs: test: strategy: matrix: python-version: # - "3.7" # - "3.8" - "3.9" - "3.10" - "3.11" - "3.12" - "3.13" # include: # - os: ubuntu-latest # older versions need older OS # - python-version: "3.7" # os: ubuntu-22.04 # - python-version: "3.8" # os: ubuntu-22.04 runs-on: ubuntu-latest 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 --break-system-packages -r tests/requirements.txt - name: Install run: | python -m pip install --break-system-packages ".[cli]" - name: Test run: | cd tests pytest --cov=peakrdl_python_regmap #------------------------------------------------------------------------------- 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 -r tests/requirements.txt - name: Install run: | python -m pip install ".[cli]" - name: Run Lint run: | pylint --rcfile tests/pylint.rc peakrdl_python_regmap #------------------------------------------------------------------------------- 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 -r tests/requirements.txt - name: Install run: | python -m pip install ".[cli]" - name: Type Check run: | mypy --config-file tests/mypy.ini src/peakrdl_python_regmap #------------------------------------------------------------------------------- build: needs: - test - lint - mypy name: Build distributions runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 name: Install Python with: python-version: "3.10" - name: Install dependencies run: | python -m pip install build - name: Build sdist run: python -m build - uses: actions/upload-artifact@v3 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 Gitea Release is created. if: gitea.event_name == 'release' steps: - uses: actions/download-artifact@v3 with: name: dist path: dist - run: python3 -m pip install twine --user --break-system-packages - run: python3 -m pip install -U packaging --user --break-system-packages - run: TWINE_PASSWORD=${{ secrets.PYPI_PAT }} TWINE_USERNAME=bslathi19 python -m twine upload --repository-url ${{ vars.CI_API_URL }} dist/*