Skip to content

chore(ci): add ci pipeline with GH Actions #1

chore(ci): add ci pipeline with GH Actions

chore(ci): add ci pipeline with GH Actions #1

Workflow file for this run

# SPDX-FileCopyrightText: Copyright (c) Siemens AG 2019-2025 ALL RIGHTS RESERVED
# SPDX-License-Identifier: MIT
name: PyPI release
on:
push:
tags:
- 'v[0-9]+.[0-9]+.[0-9]+'
jobs:
call-build-and-test-workflow:
uses:
./.github/workflows/build-and-test.yml
pypi-publish:
name: Upload release to PyPI
runs-on: ubuntu-latest
environment:
name: pypi
url: https://pypi.org/p/siemens-standard-bom-python
permissions:
id-token: write
needs: call-build-and-test-workflow
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Install Poetry
run: |
pipx install poetry
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.12'
cache: poetry
cache-dependency-path: poetry.lock
- name: Set Poetry environment
run: |
poetry env use 3.12
- name: Install dependencies
run: |
poetry install --sync --no-interaction
- name: Package project
run: |
poetry build
- name: Publish package to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
packages-dir: dist
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: dist
path: dist
changelog:
name: Generate changelog
runs-on: ubuntu-latest
outputs:
release_body: ${{ steps.git-cliff.outputs.content }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Download artifacts
uses: actions/download-artifact@v4
with:
name: dist
- name: Generate a changelog
uses: orhun/git-cliff-action@v4
id: git-cliff
with:
config: cliff.toml
args: -vv --latest --strip header
env:
OUTPUT: CHANGES.md
GITHUB_REPO: ${{ github.repository }}
# use release body in the same job
- name: Upload the binary releases
uses: svenstaro/upload-release-action@v2
with:
file: dist
repo_token: ${{ secrets.GITHUB_TOKEN }}
tag: ${{ github.ref }}
body: ${{ steps.git-cliff.outputs.content }}