2021-06-17 15:52:45 +08:00

69 lines
1.9 KiB
YAML

version: 2.1
orbs:
# The python orb contains a set of prepackaged CircleCI configuration you can use repeatedly in your configuration files
# Orb commands and jobs help you with common scripting around a language/tool
# so you dont have to copy and paste it everywhere.
# See the orb documentation here: https://circleci.com/developer/orbs/orb/circleci/python
python: circleci/python@1.4
# poetry: frameio/poetry@0.21.0
swissknife: roopakv/swissknife@0.59.0
workflows:
build-test-publish:
jobs:
- python/test:
pkg-manager: poetry
test-tool: pytest
version: "3.9"
filters:
tags:
only: /.*/
- build-publish:
requires:
- python/test
filters:
branches:
ignore: /.*/
tags:
only: /^v.*/
jobs:
# test:
# docker:
# - image: cimg/python:3.9
# steps:
# - checkout
# # - run: sed -e '41,45d' -i pyproject.toml
# - restore_cache:
# keys:
# - venv-cache-{{ checksum "poetry.lock" }}
# - run:
# name: Poetry install
# command: |
# poetry config virtualenvs.in-project true
# poetry install -v
# - save_cache:
# paths:
# - .venv
# key: venv-cache-{{ checksum "poetry.lock" }}
# - run:
# name: pytest
# command: poetry run pytest --junitxml=test-results/junit.xml
# - store_test_results:
# path: test-results
build-publish:
docker:
- image: cimg/python:3.9
steps:
- checkout
- run: poetry build
- store_artifacts:
path: dist
- swissknife/publish_github_release:
tag: ${CIRCLE_TAG}
- run:
command: poetry publish -u $PYPI_USERNAME -p $PYPI_PASSWORD
name: publish to pypi