# 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 }}