59 lines
1.8 KiB
YAML
59 lines
1.8 KiB
YAML
on:
|
|
push:
|
|
tags:
|
|
- '[0-9]+\.[0-9]+\.[0-9]+-c\.[0-9]+'
|
|
- '[0-9]+\.[0-9]+\.[0-9]+-a\.[0-9]+'
|
|
- '[0-9]+\.[0-9]+\.[0-9]'
|
|
|
|
jobs:
|
|
lint-and-typing:
|
|
runs-on: docker
|
|
container: nikolaik/python-nodejs:python3.11-nodejs21
|
|
steps:
|
|
- name: Checkout source code
|
|
uses: https://code.forgejo.org/actions/checkout@v3
|
|
- name: Install packages
|
|
run: |
|
|
pip install -e .[dev] -q --disable-pip-version-check -q
|
|
python -m pip list --format=columns --disable-pip-version-check
|
|
- name: Run pylint
|
|
run: |
|
|
pylint --version
|
|
pylint **/*.py --exit-zero --rc-file pyproject.toml
|
|
- name: Run mypy
|
|
run: |
|
|
mypy --version
|
|
mypy .
|
|
|
|
build-artifacts:
|
|
needs: ["lint-and-typing"]
|
|
runs-on: docker
|
|
container: nikolaik/python-nodejs:python3.11-nodejs21
|
|
steps:
|
|
- name: Checkout source code
|
|
uses: https://code.forgejo.org/actions/checkout@v3
|
|
- name: Install packages
|
|
run: pip install build
|
|
- name: Build package
|
|
run: python -m build
|
|
- name: Save build artifacts
|
|
uses: https://code.forgejo.org/actions/upload-artifact@v3
|
|
with:
|
|
name: packages
|
|
path: dist/*
|
|
|
|
publish-artifacts:
|
|
needs: ["build-artifacts"]
|
|
runs-on: docker
|
|
container: nikolaik/python-nodejs:python3.11-nodejs21
|
|
steps:
|
|
- name: Downloading static site artifacts
|
|
uses: actions/download-artifact@v3
|
|
with:
|
|
name: packages
|
|
path: dist
|
|
- name: Install Dependencies
|
|
run: pip install twine
|
|
- name: Upload package to registry
|
|
run: python -m twine upload --repository-url ${{ secrets.REPOSITORY_URL }} -u ${{ secrets.TWINE_DEPLOY_USER }} -p ${{ secrets.TWINE_DEPLOY_PASSWORD }} dist/*
|