initial github actions transisition

This commit is contained in:
sommersoft 2019-10-29 16:31:59 -05:00
parent fb0fd0e3ec
commit 33f8ef91f8
4 changed files with 114 additions and 22 deletions

55
.github/workflows/build.yml vendored Normal file
View file

@ -0,0 +1,55 @@
name: Build CI
on: [pull_request, push]
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Dump GitHub context
env:
GITHUB_CONTEXT: ${{ toJson(github) }}
run: echo "$GITHUB_CONTEXT"
- name: Translate Repo Name For Build Tools filename_prefix
id: repo-name
run: |
echo ::set-output name=repo-name::$(
echo ${{ github.repository }} |
awk -F '\/' '{ print tolower($2) }' |
tr '_' '-'
)
- name: Set up Python 3.6
uses: actions/setup-python@v1
with:
python-version: 3.6
- name: Versions
run: |
python3 --version
- uses: actions/checkout@v1
with:
submodules: true
- name: Install deps
run: |
sudo apt-get install -y gettext gawk
pip install -r requirements.txt
pip install circuitpython-build-tools Sphinx sphinx-rtd-theme
pip install --force-reinstall pylint==1.9.2
- name: Library version
run: git describe --dirty --always --tags
- name: Package Folder Prefix For circuitpython-build-tools (Community Bundle Specific)
id: pkg-folder
run: |
echo ::set-output name:prefix::$(
ls -RUx |
gawk -F '\n' '{ match($1, /(drivers|helpers)\/(.+)\/(.+)/, arr) ; if (length(arr[0]) > 0 && match(arr[3], arr[2]) > 0) printf "%s, ", arr[2] }' |
gawk '{ trimmed = substr($0, 1, length($0) - 2) ; print "\"" trimmed "\"" }'
)
- name: PyLint
run: |
pylint $( find . -path './adafruit*.py' )
([[ ! -d "examples" ]] || pylint --disable=missing-docstring,invalid-name,bad-whitespace examples/*.py)
- name: Build assets
run: circuitpython-build-bundles --filename_prefix ${{ steps.repo-name.outputs.repo-name }} --library_location . --package_folder_prefix ${{ steps.pkg-folder.outputs.prefix }}
- name: Build docs
working-directory: docs
run: sphinx-build -E -W -b html . _build/html

58
.github/workflows/release.yml vendored Normal file
View file

@ -0,0 +1,58 @@
name: Release Actions
on:
release:
types: [published]
jobs:
upload-release-assets:
runs-on: ubuntu-latest
steps:
- name: Dump GitHub context
env:
GITHUB_CONTEXT: ${{ toJson(github) }}
run: echo "$GITHUB_CONTEXT"
- name: Translate Repo Name For Build Tools filename_prefix
id: repo-name
run: |
echo ::set-output name=repo-name::$(
echo ${{ github.repository }} |
awk -F '\/' '{ print tolower($2) }' |
tr '_' '-'
)
- name: Set up Python 3.6
uses: actions/setup-python@v1
with:
python-version: 3.6
- name: Versions
run: |
python3 --version
- uses: actions/checkout@v1
with:
submodules: true
- name: Install deps
run: |
sudo apt-get install -y gettext gawk
pip install -r requirements.txt
pip install circuitpython-build-tools
- name: Package Folder Prefix For circuitpython-build-tools (Community Bundle Specific)
id: pkg-folder
run: |
echo ::set-output name:prefix::$(
ls -RUx |
gawk -F '\n' '{ match($1, /(drivers|helpers)\/(.+)\/(.+)/, arr) ; if (length(arr[0]) > 0 && match(arr[3], arr[2]) > 0) printf "%s, ", arr[2] }' |
gawk '{ trimmed = substr($0, 1, length($0) - 2) ; print "\"" trimmed "\"" }'
)
- name: Build assets
run: circuitpython-build-bundles --filename_prefix ${{ steps.repo-name.outputs.repo-name }} --library_location . --package_folder_prefix ${{ steps.pkg-folder.outputs.prefix }}
- name: Upload Release Assets
# the 'official' actions version does not yet support dynamically
# supplying asset names to upload. @csexton's version chosen based on
# discussion in the issue below, as its the simplest to implement and
# allows for selecting files with a pattern.
# https://github.com/actions/upload-release-asset/issues/4
#uses: actions/upload-release-asset@v1.0.1
uses: csexton/release-asset-action@master
with:
pattern: "bundles/*"
github-token: ${{ secrets.GITHUB_TOKEN }}

2
.gitignore vendored
View file

@ -1,3 +1,3 @@
build*
build/*
.env
bundles

View file

@ -1,21 +0,0 @@
# Travis CI configuration for automated bundle generation.
dist: trusty
sudo: false
language: python
python:
- "3.6"
cache:
pip: true
deploy:
provider: releases
api_key: $GITHUB_TOKEN
file_glob: true
file: bundles/*
skip_cleanup: true
on:
tags: true
script: circuitpython-build-bundles --filename_prefix circuitpython-community-bundle --library_location libraries --library_depth 2