Skip to content

Commit 91d56d4

Browse files
author
brentru
committed
cookiecut
1 parent 46b98aa commit 91d56d4

18 files changed

+1137
-4
lines changed

.github/workflows/build.yml

+57
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
name: Build CI
2+
3+
on: [pull_request, push]
4+
5+
jobs:
6+
test:
7+
runs-on: ubuntu-latest
8+
steps:
9+
- name: Dump GitHub context
10+
env:
11+
GITHUB_CONTEXT: ${{ toJson(github) }}
12+
run: echo "$GITHUB_CONTEXT"
13+
- name: Translate Repo Name For Build Tools filename_prefix
14+
id: repo-name
15+
run: |
16+
echo ::set-output name=repo-name::$(
17+
echo ${{ github.repository }} |
18+
awk -F '\/' '{ print tolower($2) }' |
19+
tr '_' '-'
20+
)
21+
- name: Set up Python 3.6
22+
uses: actions/setup-python@v1
23+
with:
24+
python-version: 3.6
25+
- name: Versions
26+
run: |
27+
python3 --version
28+
- name: Checkout Current Repo
29+
uses: actions/checkout@v1
30+
with:
31+
submodules: true
32+
- name: Checkout tools repo
33+
uses: actions/checkout@v2
34+
with:
35+
repository: adafruit/actions-ci-circuitpython-libs
36+
path: actions-ci
37+
- name: Install dependencies
38+
# (e.g. - apt-get: gettext, etc; pip: circuitpython-build-tools, requirements.txt; etc.)
39+
run: |
40+
source actions-ci/install.sh
41+
- name: Pip install pylint, black, & Sphinx
42+
run: |
43+
pip install --force-reinstall pylint==1.9.2 black==19.10b0 Sphinx sphinx-rtd-theme
44+
- name: Library version
45+
run: git describe --dirty --always --tags
46+
- name: PyLint
47+
run: |
48+
pylint $( find . -path './adafruit*.py' )
49+
([[ ! -d "examples" ]] || pylint --disable=missing-docstring,invalid-name,bad-whitespace $( find . -path "./examples/*.py" ))
50+
- name: Check formatting
51+
run: |
52+
black --check --target-version=py35 .
53+
- name: Build assets
54+
run: circuitpython-build-bundles --filename_prefix ${{ steps.repo-name.outputs.repo-name }} --library_location .
55+
- name: Build docs
56+
working-directory: docs
57+
run: sphinx-build -E -W -b html . _build/html

.github/workflows/release.yml

+81
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
name: Release Actions
2+
3+
on:
4+
release:
5+
types: [published]
6+
7+
jobs:
8+
upload-release-assets:
9+
runs-on: ubuntu-latest
10+
steps:
11+
- name: Dump GitHub context
12+
env:
13+
GITHUB_CONTEXT: ${{ toJson(github) }}
14+
run: echo "$GITHUB_CONTEXT"
15+
- name: Translate Repo Name For Build Tools filename_prefix
16+
id: repo-name
17+
run: |
18+
echo ::set-output name=repo-name::$(
19+
echo ${{ github.repository }} |
20+
awk -F '\/' '{ print tolower($2) }' |
21+
tr '_' '-'
22+
)
23+
- name: Set up Python 3.6
24+
uses: actions/setup-python@v1
25+
with:
26+
python-version: 3.6
27+
- name: Versions
28+
run: |
29+
python3 --version
30+
- name: Checkout Current Repo
31+
uses: actions/checkout@v1
32+
with:
33+
submodules: true
34+
- name: Checkout tools repo
35+
uses: actions/checkout@v2
36+
with:
37+
repository: adafruit/actions-ci-circuitpython-libs
38+
path: actions-ci
39+
- name: Install deps
40+
run: |
41+
source actions-ci/install.sh
42+
- name: Build assets
43+
run: circuitpython-build-bundles --filename_prefix ${{ steps.repo-name.outputs.repo-name }} --library_location .
44+
- name: Upload Release Assets
45+
# the 'official' actions version does not yet support dynamically
46+
# supplying asset names to upload. @csexton's version chosen based on
47+
# discussion in the issue below, as its the simplest to implement and
48+
# allows for selecting files with a pattern.
49+
# https://github.com/actions/upload-release-asset/issues/4
50+
#uses: actions/[email protected]
51+
uses: csexton/release-asset-action@master
52+
with:
53+
pattern: "bundles/*"
54+
github-token: ${{ secrets.GITHUB_TOKEN }}
55+
56+
upload-pypi:
57+
runs-on: ubuntu-latest
58+
steps:
59+
- uses: actions/checkout@v1
60+
- name: Check For setup.py
61+
id: need-pypi
62+
run: |
63+
echo ::set-output name=setup-py::$( find . -wholename './setup.py' )
64+
- name: Set up Python
65+
if: contains(steps.need-pypi.outputs.setup-py, 'setup.py')
66+
uses: actions/setup-python@v1
67+
with:
68+
python-version: '3.x'
69+
- name: Install dependencies
70+
if: contains(steps.need-pypi.outputs.setup-py, 'setup.py')
71+
run: |
72+
python -m pip install --upgrade pip
73+
pip install setuptools wheel twine
74+
- name: Build and publish
75+
if: contains(steps.need-pypi.outputs.setup-py, 'setup.py')
76+
env:
77+
TWINE_USERNAME: ${{ secrets.pypi_username }}
78+
TWINE_PASSWORD: ${{ secrets.pypi_password }}
79+
run: |
80+
python setup.py sdist
81+
twine upload dist/*

.gitignore

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
*.mpy
2+
.idea
3+
__pycache__
4+
_build
5+
*.pyc
6+
.env
7+
.python-version
8+
build*/
9+
bundles
10+
*.DS_Store
11+
.eggs
12+
dist
13+
**/*.egg-info
14+
.vscode

0 commit comments

Comments
 (0)