marcus67/proxy_ping

View on GitHub
.circleci/config.yml

Summary

Maintainability
Test Coverage
#    Copyright (C) 2019  Marcus Rickert
#
#    See https://github.com/marcus67/python_base_app
#
#    This program is free software; you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation; either version 3 of the License, or
#    (at your option) any later version.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License along
#    with this program; if not, write to the Free Software Foundation, Inc.,
#    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

##################################################################################
# Please, beware that this file has been generated! Do not make any changes here #
# but only to python_base_app/templates/gitlab-ci.template.yml!                  #
##################################################################################

version: 2.0
jobs:
  build:
    #working_directory: ~
    docker:
      - image: accso/docker-python-app:latest
    steps:
      - checkout

      # Check out all sub modules
      # See https://circleci.com/docs/2.0/configuration-reference/#checkout
      - run: git submodule sync
      - run: git submodule update --init

      - run: PYTHONPATH=contrib/python_base_app python3 ci_toolbox.py --execute-stage BUILD --use-dev-dir=.
      - run: PYTHONPATH=contrib/python_base_app python3 ci_toolbox.py --execute-stage INSTALL
      - run: PYTHONPATH=contrib/python_base_app python3 ci_toolbox.py --execute-stage TEST --use-dev-dir .
      - run: codecov
      - store_artifacts:
          path: htmlcov
      - store_artifacts:
          path: debian/proxy-ping_0.1.2_4.deb
      - persist_to_workspace:
          root: debian
          paths:
            - proxy-ping_0.1.2_4.deb
  build_pypi:
    #working_directory: ~
    docker:
      - image: accso/docker-python-app:latest
    steps:
      - checkout

      # Check out all sub modules
      # See https://circleci.com/docs/2.0/configuration-reference/#checkout
      - run: git submodule sync
      - run: git submodule update --init

      - run: PYTHONPATH=contrib/python_base_app python3 ci_toolbox.py --execute-stage BUILD --use-dev-dir=.
      - store_artifacts:
          path: "dist/proxy-ping-0.1.2.tar.gz"
      - persist_to_workspace:
          root: dist
          paths:
            - "proxy-ping-0.1.2.tar.gz"
  install_pypi:
    #working_directory: ~
    docker:
      - image: accso/docker-python-app:latest
    steps:
      - checkout
      - attach_workspace:
          at: "dist"

      # Check out all sub modules
      # See https://circleci.com/docs/2.0/configuration-reference/#checkout
      - run: git submodule sync
      - run: git submodule update --init

      - run: PYTHONPATH=contrib/python_base_app python3 ci_toolbox.py --execute-stage INSTALL-PYPI-PACKAGE --use-dev-dir=.
      - run: PYTHONPATH=contrib/python_base_app python3 ci_toolbox.py --execute-stage TEST --use-dev-dir .
      - run: codecov
      - store_artifacts:
          path: htmlcov
  publish_pypi:
    #working_directory: ~
    docker:
      - image: accso/docker-python-app:latest
    steps:
      - checkout
      - attach_workspace:
          at: "dist"

      # Check out all sub modules
      # See https://circleci.com/docs/2.0/configuration-reference/#checkout
      - run: git submodule sync
      - run: git submodule update --init

      - run: PYTHONPATH=contrib/python_base_app python3 ci_toolbox.py --execute-stage PUBLISH-PYPI-PACKAGE --use-dev-dir=.
  deploy:
    docker:
      - image: accso/docker-python-app:latest
    steps:
      - checkout
      - attach_workspace:
          at: debian
      - run: git submodule sync
      - run: git submodule update --init
      - run: PYTHONPATH=contrib/python_base_app python3 ci_toolbox.py --execute-stage PUBLISH-PACKAGE
  docker:
    docker:
      - image: marcusrickert/docker-docker-ci:release-0.9.1
    steps:
      - checkout
      - attach_workspace:
          at: debian
      - run: git submodule sync
      - run: git submodule update --init
      - setup_remote_docker:
          docker_layer_caching: false
      - run: PYTHONPATH=contrib/python_base_app python3 ci_toolbox.py --execute-stage BUILD_DOCKER_IMAGES

workflows:
    version: 2
    build_and_deploy:
      jobs:
        - build
        - deploy:
            requires:
              - build
            filters:
              branches:
                only:
                  - main
                  - release
        - docker:
            requires:
              - build
        - build_pypi
        - install_pypi:
            requires:
              - build_pypi
        - publish_pypi:
            requires:
              - install_pypi
              - docker
            filters:
              branches:
                only:
                  - release
                  - main