mirror of
https://github.com/thousandeyes/thousandeyes-sdk-python.git
synced 2025-12-06 16:05:30 +00:00
68 lines
2.1 KiB
YAML
68 lines
2.1 KiB
YAML
name: Release
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
releaseVersion:
|
|
description: 'The target version you want to update and release'
|
|
required: true
|
|
type: string
|
|
|
|
jobs:
|
|
set-package-matrix:
|
|
# This action returns all sub-packages to be published.
|
|
# It thens exports the variable to `matrix`, so that the deployment job is run individually for each sub-package
|
|
runs-on: ubuntu-latest
|
|
outputs:
|
|
packages: ${{ steps.packages.outputs.packages }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- id: packages
|
|
run: |
|
|
FOLDERS_JSON=$(find . -maxdepth 1 -type d -name "thousandeyes-sdk-*" | cut -c 3- | jq -R -s -c 'split("\n")[:-1]')
|
|
echo "packages=$FOLDERS_JSON" >> "$GITHUB_OUTPUT"
|
|
deployment:
|
|
needs: set-package-matrix
|
|
strategy:
|
|
matrix:
|
|
package-name: ${{ fromJSON(needs.set-package-matrix.outputs.packages) }}
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
id-token: write
|
|
environment:
|
|
name: release
|
|
url: https://pypi.org/p/${{ matrix.package-name }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
ref: main
|
|
python-version: '3.11'
|
|
token: ${{ secrets.CHECKOUT_PAT }}
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
cache: pip
|
|
cache-dependency-path: '**/pyproject.toml'
|
|
- name: Install dependencies
|
|
run: |
|
|
pip install setuptools wheel build
|
|
- name: Build
|
|
run: |
|
|
echo ${{ inputs.releaseVersion }} >> ${{ matrix.package-name }}/.version
|
|
cp LICENSE NOTICE ${{ matrix.package-name }}/
|
|
python -m build ${{ matrix.package-name }} --outdir dist/
|
|
- name: Publish
|
|
uses: pypa/gh-action-pypi-publish@release/v1
|
|
with:
|
|
skip-existing: true
|
|
add-tag:
|
|
runs-on: ubuntu-latest
|
|
needs: deployment
|
|
steps:
|
|
- name: Create GitHub Release
|
|
uses: softprops/action-gh-release@v2
|
|
with:
|
|
tag_name: ${{ inputs.releaseVersion }}
|
|
prerelease: false
|
|
draft: false
|
|
generate_release_notes: true
|