.circleci/config.yml
# Copyright (C) 2019-2022 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: marcusrickert/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/little-brother_0.4.36_143.deb
- persist_to_workspace:
root: debian
paths:
- little-brother_0.4.36_143.deb
build_pypi:
#working_directory: ~
docker:
- image: marcusrickert/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/little-brother-0.4.36.tar.gz"
- persist_to_workspace:
root: dist
paths:
- "little-brother-0.4.36.tar.gz"
install_pypi:
#working_directory: ~
docker:
- image: marcusrickert/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: marcusrickert/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: marcusrickert/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:
- master
- release
- docker:
requires:
- build
- publish_pypi
- build_pypi
- install_pypi:
requires:
- build_pypi
- publish_pypi:
requires:
- install_pypi
filters:
branches:
only:
- release
- master