build.yml
1 # SPDX-FileCopyrightText: 2017 Scott Shawcroft, written for Adafruit Industries 2 # 3 # SPDX-License-Identifier: MIT 4 5 name: Build CI 6 7 on: [pull_request, push] 8 9 jobs: 10 test: 11 runs-on: ubuntu-latest 12 steps: 13 - name: Dump GitHub context 14 env: 15 GITHUB_CONTEXT: ${{ toJson(github) }} 16 run: echo "$GITHUB_CONTEXT" 17 - name: Translate Repo Name For Build Tools filename_prefix 18 id: repo-name 19 run: | 20 echo ::set-output name=repo-name::$( 21 echo ${{ github.repository }} | 22 awk -F '\/' '{ print tolower($2) }' | 23 tr '_' '-' 24 ) 25 - name: Set up Python 3.6 26 uses: actions/setup-python@v1 27 with: 28 python-version: 3.6 29 - name: Versions 30 run: | 31 python3 --version 32 - name: Checkout Current Repo 33 uses: actions/checkout@v1 34 with: 35 submodules: true 36 - name: Checkout tools repo 37 uses: actions/checkout@v2 38 with: 39 repository: adafruit/actions-ci-circuitpython-libs 40 path: actions-ci 41 - name: Install dependencies 42 # (e.g. - apt-get: gettext, etc; pip: circuitpython-build-tools, requirements.txt; etc.) 43 run: | 44 source actions-ci/install.sh 45 - name: Pip install pylint, Sphinx, pre-commit 46 run: | 47 pip install --force-reinstall pylint Sphinx sphinx-rtd-theme pre-commit 48 - name: Library version 49 run: git describe --dirty --always --tags 50 - name: Setup problem matchers 51 uses: adafruit/circuitpython-action-library-ci-problem-matchers@v1 52 - name: Pre-commit hooks 53 run: | 54 pre-commit run --all-files 55 - name: Build assets 56 run: circuitpython-build-bundles --filename_prefix ${{ steps.repo-name.outputs.repo-name }} --library_location . 57 - name: Archive bundles 58 uses: actions/upload-artifact@v2 59 with: 60 name: bundles 61 path: ${{ github.workspace }}/bundles/ 62 - name: Check For docs folder 63 id: need-docs 64 run: | 65 echo ::set-output name=docs::$( find . -wholename './docs' ) 66 - name: Build docs 67 if: contains(steps.need-docs.outputs.docs, 'docs') 68 working-directory: docs 69 run: sphinx-build -E -W -b html . _build/html 70 - name: Check For setup.py 71 id: need-pypi 72 run: | 73 echo ::set-output name=setup-py::$( find . -wholename './setup.py' ) 74 - name: Build Python package 75 if: contains(steps.need-pypi.outputs.setup-py, 'setup.py') 76 run: | 77 pip install --upgrade setuptools wheel twine readme_renderer testresources 78 python setup.py sdist 79 python setup.py bdist_wheel --universal 80 twine check dist/*