fix: kick release #767
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
push: | |
branches: [main] | |
pull_request: | |
branches: [main] | |
env: | |
POETRY_VIRTUALENVS_IN_PROJECT: true | |
jobs: | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- run: pipx install poetry | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: "3.10" | |
cache: poetry | |
- name: Install package | |
run: poetry install | |
- name: Run linters | |
run: poetry run poe lint | |
test-build-only: | |
needs: lint | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
include: | |
- os: macos-latest | |
python: "3.10" | |
- os: windows-latest | |
python: "3.10" | |
steps: | |
- uses: actions/checkout@v3 | |
- run: pipx install poetry | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python }} | |
cache: poetry | |
- name: Install package | |
run: poetry install -E crypto | |
test: | |
needs: lint | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-latest] | |
python: ["3.8", "3.9", "3.10", "3.11"] | |
steps: | |
- uses: actions/checkout@v3 | |
- run: pipx install poetry | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python }} | |
cache: poetry | |
- name: Install package | |
run: poetry install -E crypto | |
- name: Start integration services | |
run: | | |
timeout 120s ./scripts/start-docker.sh | |
- name: Run tests | |
run: poetry run poe test | |
- name: Stop integration services | |
if: always() | |
run: | | |
docker compose ps --all | |
echo 'docker compose logs nionic' | |
docker compose down | |
tests-passing: | |
if: always() | |
needs: [test,test-build-only] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: re-actors/alls-green@release/v1 | |
with: | |
jobs: ${{ toJSON(needs) }} | |
release: | |
needs: tests-passing | |
runs-on: ubuntu-latest | |
if: github.ref == 'refs/heads/main' | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
token: ${{ secrets.NIO_BOT_TOKEN }} | |
- run: pipx install poetry | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: "3.10" | |
cache: poetry | |
- name: Bump version | |
uses: TriPSs/conventional-changelog-action@v3 | |
id: version | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
git-user-name: "GitHub Actions" | |
git-user-email: "[email protected]" | |
version-file: pyproject.toml | |
version-path: tool.poetry.version | |
preset: conventionalcommits | |
output-file: false | |
- name: Set new commit hash | |
run: echo "SHA=$(git rev-parse HEAD)" >> $GITHUB_ENV | |
- name: Create release | |
uses: actions/create-release@v1 | |
if: ${{ steps.version.outputs.skipped == 'false' }} | |
env: | |
GITHUB_TOKEN: ${{ secrets.NIO_BOT_TOKEN }} | |
with: | |
tag_name: ${{ steps.version.outputs.tag }} | |
release_name: ${{ steps.version.outputs.tag }} | |
body: ${{ steps.version.outputs.clean_changelog }} | |
commitish: ${{ env.SHA }} | |
- name: Publish to PyPI | |
if: ${{ steps.version.outputs.skipped == 'false' }} | |
env: | |
# https://github.com/python-poetry/poetry/issues/2359 | |
POETRY_HTTP_BASIC_PYPI_USERNAME: __token__ | |
POETRY_HTTP_BASIC_PYPI_PASSWORD: ${{ secrets.PYPI_TOKEN }} | |
run: poetry publish --build --no-interaction |