|
|
name: Build release |
|
|
|
|
|
on: |
|
|
workflow_dispatch: |
|
|
push: |
|
|
tags: |
|
|
- 'v*' |
|
|
|
|
|
concurrency: |
|
|
group: docker |
|
|
cancel-in-progress: true |
|
|
|
|
|
jobs: |
|
|
build: |
|
|
runs-on: ubuntu-latest |
|
|
steps: |
|
|
- uses: actions/checkout@v2 |
|
|
- name: Set up Python 3.9 |
|
|
uses: actions/setup-python@v4 |
|
|
with: |
|
|
python-version: "3.9" |
|
|
cache: 'pip' |
|
|
- name: Cleanup more disk space |
|
|
run: sudo rm -rf /usr/share/dotnet && sudo rm -rf /opt/ghc && sudo rm -rf "/usr/local/share/boost" && sudo rm -rf "$AGENT_TOOLSDIRECTORY" |
|
|
- name: Install dependencies |
|
|
run: | |
|
|
python -m pip install --upgrade pip |
|
|
pip install --upgrade flake8 pytest pycodestyle |
|
|
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi |
|
|
- 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. The GitHub editor is 127 chars wide |
|
|
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- name: Build and Publish to PyPI |
|
|
uses: conchylicultor/pypi-build-publish@v1 |
|
|
with: |
|
|
pypi-token: ${{ secrets.PYPI_API_TOKEN }} |
|
|
|
|
|
|
|
|
docker-build: |
|
|
needs: [build] |
|
|
runs-on: ubuntu-latest |
|
|
|
|
|
steps: |
|
|
- name: Set tags |
|
|
id: set_tags |
|
|
run: | |
|
|
DOCKER_IMAGE=lfoppiano/document-insights-qa |
|
|
VERSION="" |
|
|
if [[ $GITHUB_REF == refs/tags/v* ]]; then |
|
|
VERSION=${GITHUB_REF#refs/tags/v} |
|
|
fi |
|
|
if [[ $VERSION =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then |
|
|
TAGS="${VERSION}" |
|
|
else |
|
|
TAGS="latest" |
|
|
fi |
|
|
echo "TAGS=${TAGS}" |
|
|
echo ::set-output name=tags::${TAGS} |
|
|
- name: Create more disk space |
|
|
run: sudo rm -rf /usr/share/dotnet && sudo rm -rf /opt/ghc && sudo rm -rf "/usr/local/share/boost" && sudo rm -rf "$AGENT_TOOLSDIRECTORY" |
|
|
- uses: actions/checkout@v2 |
|
|
- name: Build and push |
|
|
id: docker_build |
|
|
uses: mr-smithers-excellent/docker-build-push@v5 |
|
|
with: |
|
|
username: ${{ secrets.DOCKERHUB_USERNAME }} |
|
|
password: ${{ secrets.DOCKERHUB_TOKEN }} |
|
|
image: lfoppiano/document-insights-qa |
|
|
registry: docker.io |
|
|
pushImage: ${{ github.event_name != 'pull_request' }} |
|
|
tags: ${{ steps.set_tags.outputs.tags }} |
|
|
- name: Image digest |
|
|
run: echo ${{ steps.docker_build.outputs.digest }} |