Skip to content

Commit

Permalink
build: add CI workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
francescopisu committed Sep 15, 2023
1 parent 925d517 commit f83e647
Show file tree
Hide file tree
Showing 2 changed files with 106 additions and 2 deletions.
96 changes: 96 additions & 0 deletions .github/workflows/ci-cd.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
name: ci-cd

on: [push, pull_request]

jobs:
ci:
# set up os
runs-on: ubuntu-latest

# define job steps
steps:
- name: Set up Python 3.10
uses: actions/setup-python@v3
with:
python-version: "3.10"
architecture: "x64"
env:
AGENT_TOOLSDIRECTORY: /opt/hostedtoolcache

- name: Check-out repository
uses: actions/checkout@v4

- name: Install poetry
uses: snok/install-poetry@v1

- name: Install package
run: poetry install

- name: Execute tests
run: poetry run python -m pytest -v tests/ --cov=src --cov-report=xml -rP

- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v3
with:
files: ./coverage.xml

- name: Build documentation
run: poetry run make html --directory docs/
cd:
needs: ci

if: github.event_name == 'push' && github.ref == 'refs/heads/main'

runs-on: ubuntu-latest
concurrency: release
permissions:
id-token: write
contents: write

steps:
- name: Set up Python 3.10
uses: actions/setup-python@v3
with:
python-version: "3.10"
architecture: "x64"
env:
AGENT_TOOLSDIRECTORY: /opt/hostedtoolcache

- name: Check-out repository
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Install poetry
uses: snok/install-poetry@v1

- name: Install package
run: poetry install

- name: Use Python Semantic Release to prepare release
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
git config user.name github-actions
git config user.email github-actions@github.com
poetry run semantic-release publish
- name: Publish to TestPyPi
uses: pypa/gh-action-pypi-publish@release/v1
with:
user: __token__
password: ${{ secrets.TEST_PYPI_API_TOKEN }}
repository_url: https://test.pypi.org/legacy/

- name: Test install from TestPyPI
run: |
pip install \
--index-url https://test.pypi.org/simple/ \
--extra-index-url https://pypi.org/simple \
modelsight
- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
user: __token__
password: ${{ secrets.PYPI_API_TOKEN }}
12 changes: 10 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -38,5 +38,13 @@ requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"

[tool.semantic_release]
version_variable = "pyproject.toml:version"
version_source = "tag"
version_variable = "pyproject.toml:version" # version location
version_source = "tag"
branch = "main" # branch to make releases of
changelog_file = "CHANGELOG.md" # changelog file
build_command = "poetry build" # build dists
dist_path = "dist/" # where to put dists
upload_to_release = true # auto-create GitHub release
upload_to_pypi = false # don't auto-upload to PyPI
remove_dist = false # don't remove dists
patch_without_tag = true # patch release by default

0 comments on commit f83e647

Please sign in to comment.