KiBot/.github/workflows/pythonapp.yml

87 lines
2.4 KiB
YAML

# This workflow will install Python dependencies, run tests and lint with a single version of Python.
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
name: Python application
on:
push:
paths:
- '**.py'
- 'src/kibot'
- 'tests/**'
- '.github/workflows/pythonapp.yml'
- 'tools/dev_image/Dockerfile'
pull_request:
paths:
- '**.py'
- 'src/kibot'
- 'tests/**'
- '.github/workflows/pythonapp.yml'
- 'tools/dev_image/Dockerfile'
jobs:
test:
runs-on: ubuntu-latest
container: setsoft/kicad_auto_test:latest
steps:
- uses: actions/checkout@v2
with:
submodules: recursive
- 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
# exit-zero treats all errors as warnings.
flake8 . --count --exit-zero --statistics
- name: Test with pytest
env:
COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
run: |
python3-coverage erase
# Create the caches with macros
python3-coverage run -a src/kibot --help-outputs > /dev/null
pytest-3 --test_dir output
# pytest-3 --log-cli-level debug -k "test_misc" --test_dir output
python3-coverage report
python3-coverage html -d output/htmlcov
coveralls
- name: Store results
if: ${{ always() }}
uses: actions/upload-artifact@v1
with:
name: Test_Output
path: output
push_to_registry:
name: Push Docker image to Docker Hub
runs-on: ubuntu-latest
needs: test
steps:
- name: Check out the repo
uses: actions/checkout@v2
- name: Log in to Docker Hub
uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38
with:
images: setsoft/kicad_auto
- name: Build and push Docker image
uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc
with:
context: tools/dev_image
push: true
tags: setsoft/kicad_auto:dev
labels: ${{ steps.meta.outputs.labels }}