/ .github / workflows / build.yml
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.x
26        uses: actions/setup-python@v2
27        with:
28          python-version: "3.x"
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 Sphinx, pre-commit
46        run: |
47          pip install --force-reinstall 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: Build docs
63        working-directory: docs
64        run: sphinx-build -E -W -b html . _build/html
65      - name: Check For pyproject.toml
66        id: need-pypi
67        run: |
68          echo ::set-output name=pyproject-toml::$( find . -wholename './pyproject.toml' )
69      - name: Build Python package
70        if: contains(steps.need-pypi.outputs.pyproject-toml, 'pyproject.toml')
71        run: |
72          pip install --upgrade build twine
73          for file in $(find -not -path "./.*" -not -path "./docs*" \( -name "*.py" -o -name "*.toml" \) ); do
74              sed -i -e "s/0.0.0+auto.0/1.2.3/" $file;
75          done;
76          python -m build
77          twine check dist/*