Skip to content

Version Packages (dev) (#481) #29

Version Packages (dev) (#481)

Version Packages (dev) (#481) #29

Workflow file for this run

# This workflow will upload a Python Package using Twine when a release is created
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python#publishing-to-package-registries
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
name: Release and publish
on:
workflow_dispatch:
push:
branches:
- main
- dev
jobs:
bump:
runs-on: ubuntu-latest
outputs:
packages: ${{ steps.changesets.outputs.publishedPackages }}
steps:
- uses: actions/checkout@v4
env:
GITHUB_TOKEN: ${{ secrets.CHANGESETS_PUSH_PAT }}
- uses: pnpm/action-setup@v4
- name: Use Node.js 20
uses: actions/setup-node@v4
with:
node-version: 20
cache: "pnpm"
- name: Install pnpm dependencies
run: pnpm install
- name: Ensure release mode
id: release_mode
run: |
set +e
pnpm changeset pre ${{ github.ref == '/refs/heads/main' && 'exit' || 'enter dev' }}
echo "exitcode=$?" >> $GITHUB_OUTPUT
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Add changes
if: ${{ steps.release_mode.outputs.exitcode == '0' }}
uses: EndBug/add-and-commit@v9
with:
add: '[".changeset"]'
default_author: github_actions
message: ${{ github.ref == '/refs/heads/main' && 'Exit' || 'Enter dev' }} pre release mode
- name: Create Release Pull Request
id: changesets
uses: changesets/action@v1
with:
version: pnpm ci:version
publish: pnpm ci:publish
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: debug packages
run: echo "${{ steps.changesets.outputs.publishedPackages }}"
debug-outputs:
needs:
- bump
runs-on: ubuntu-latest
steps:
- name: Echo outputs
run: echo "${{needs.bump.outputs.packages}}"
# build:
# needs:
# - bump
# strategy:
# matrix:
# package: ${{ fromJson(needs.bump.outputs.packages) }}
# defaults:
# run:
# working-directory: ${{ matrix.package.name }}
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4
# - name: Set up Python
# uses: actions/setup-python@v3
# with:
# python-version: "3.x"
# - name: Install dependencies
# run: |
# python -m pip install --upgrade pip
# pip install build
# - name: Bump version.py
# run: |
# export module=$(sed 's/^.*\///' <<< ${{ matrix.package.name }} | tr '-' '/')
# export version=$(sed 's|-\([0-9]*\)$|\1|' <<< ${{ matrix.package.version }})
# sed -i "s/__version__.*/__version__ = \"$version\"/" $module/version.py
# - name: Build package
# run: python -m build
# - name: Store the distribution packages
# uses: actions/upload-artifact@v3
# with:
# name: python-package-distributions
# path: ${{ matrix.package.name }}/dist/
# publish:
# needs:
# - build
# runs-on: ubuntu-latest
# steps:
# - name: Download all the dists
# uses: actions/download-artifact@v3
# with:
# name: python-package-distributions
# path: dist/
# - name: Publish package
# uses: pypa/gh-action-pypi-publish@27b31702a0e7fc50959f5ad993c78deac1bdfc29
# with:
# user: __token__
# password: ${{ secrets.PYPI_API_TOKEN }}
# docs:
# needs:
# - bump
# - publish
# strategy:
# matrix:
# package: ${{ fromJSON(needs.bump.outputs.packages) }}
# runs-on: ubuntu-latest
# env:
# package: $(sed 's/^.*\///' <<< ${{ matrix.package.name }})
# module: $(tr '-' '/' <<< $package)
# steps:
# - uses: actions/checkout@v3
# - name: Install pdoc
# run: python -m pip install --upgrade pdoc
# - name: Install package
# run: python -m pip install $package/
# - name: Build Docs
# run: python -m pdoc $module --docformat=google --output-dir docs
# - name: S3 Upload
# run: aws s3 cp docs/ s3://livekit-docs/$package --recursive
# env:
# AWS_ACCESS_KEY_ID: ${{ secrets.DOCS_DEPLOY_AWS_ACCESS_KEY }}
# AWS_SECRET_ACCESS_KEY: ${{ secrets.DOCS_DEPLOY_AWS_API_SECRET }}
# AWS_DEFAULT_REGION: "us-east-1"