mirror of
https://github.com/ArcaneChat/arcanechat-tui.git
synced 2026-07-03 14:05:26 +02:00
67 lines
2.0 KiB
YAML
67 lines
2.0 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
branches: [ master ]
|
|
tags:
|
|
- 'v*.*.*'
|
|
pull_request:
|
|
branches: [ master ]
|
|
|
|
jobs:
|
|
test:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
python-version: [3.6, 3.8]
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Set up Python ${{ matrix.python-version }}
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
- name: Install dependencies
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
python -m pip install flake8 black
|
|
python -m pip install '.[test]'
|
|
- name: Check code with black
|
|
run: |
|
|
black --check .
|
|
- name: Lint with flake8
|
|
run: |
|
|
# stop the build if there are Python syntax errors or undefined names
|
|
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
|
|
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
|
|
- name: Test with pytest
|
|
run: |
|
|
# pytest
|
|
|
|
deploy:
|
|
needs: test
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions/setup-python@v2
|
|
with:
|
|
python-version: '3.x'
|
|
- id: check-tag
|
|
run: |
|
|
if [[ "${{ github.event.ref }}" =~ ^refs/tags/v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
|
|
echo ::set-output name=match::true
|
|
fi
|
|
- name: Create PyPI release
|
|
uses: casperdcl/deploy-pypi@v2
|
|
with:
|
|
password: ${{ secrets.PYPI_TOKEN }}
|
|
build: true
|
|
# only upload if a tag is pushed (otherwise just build & check)
|
|
upload: ${{ github.event_name == 'push' && steps.check-tag.outputs.match == 'true' }}
|
|
- name: Create GitHub release
|
|
if: ${{ github.event_name == 'push' && steps.check-tag.outputs.match == 'true' }}
|
|
uses: Roang-zero1/github-create-release-action@master
|
|
with:
|
|
version_regex: ^v[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|