name: Release on: push: tags: - '*' 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: #if: github.event.pull_request.merged == true needs: set-package-matrix strategy: fail-fast: false matrix: package-name: [thousandeyes-sdk-administrative, thousandeyes-sdk-instant-tests, thousandeyes-sdk-usage, thousandeyes-sdk-core] runs-on: ubuntu-latest permissions: id-token: write environment: name: test url: https://test.pypi.org/p/${{ matrix.package-name }} steps: - uses: actions/checkout@v4 with: ref: main python-version: '3.11' token: ${{ secrets.TEST_PAT }} - name: Set up Python uses: actions/setup-python@v5 with: cache: pip python-version: '3.11' cache-dependency-path: '**/pyproject.toml' - name: Install dependencies run: | pip install setuptools wheel build - name: Build run: | echo "$GITHUB_REF_NAME" >> ${{ matrix.package-name }}/.version ls ${{ matrix.package-name }}/ 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: repository-url: https://test.pypi.org/legacy/ skip-existing: true