| 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 }} |