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@v4 - name: Set up Python 3.9 uses: actions/setup-python@v5 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: Test with pytest # run: | # pytest - 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 }}