diff --git a/.github/workflows/publish-npm.yml b/.github/workflows/publish-npm.yml new file mode 100644 index 0000000..03fe0ad --- /dev/null +++ b/.github/workflows/publish-npm.yml @@ -0,0 +1,34 @@ +name: Publish TypeScript Package + +on: + release: + types: + - published + +jobs: + publish-npm: + if: startsWith(github.event.release.tag_name, 'v') + runs-on: ubuntu-latest + permissions: + contents: read + id-token: write + defaults: + run: + working-directory: typescript + steps: + - name: Check out repository + uses: actions/checkout@v7 + with: + ref: ${{ github.event.release.tag_name }} + + - name: Set up Node.js + uses: actions/setup-node@v6 + with: + node-version: "22" + registry-url: "https://registry.npmjs.org" + + - name: Verify package contents + run: npm pack --dry-run + + - name: Publish to npm + run: npm publish --provenance --access public diff --git a/.github/workflows/publish-python.yml b/.github/workflows/publish-python.yml new file mode 100644 index 0000000..bc44d03 --- /dev/null +++ b/.github/workflows/publish-python.yml @@ -0,0 +1,39 @@ +name: Publish Python Package + +on: + release: + types: + - published + +jobs: + publish-pypi: + if: startsWith(github.event.release.tag_name, 'v') + runs-on: ubuntu-latest + permissions: + contents: read + id-token: write + steps: + - name: Check out repository + uses: actions/checkout@v7 + with: + ref: ${{ github.event.release.tag_name }} + + - name: Set up uv + uses: astral-sh/setup-uv@v7 + + - name: Set up Python + uses: actions/setup-python@v6 + with: + python-version: "3.13" + + - name: Sync Python dependencies + run: uv sync --group dev --no-editable + + - name: Run Python validation + run: ./scripts/validate_python.sh + + - name: Build Python distributions + run: uv build + + - name: Publish to PyPI + uses: pypa/gh-action-pypi-publish@release/v1 diff --git a/.gitignore b/.gitignore index 3c89f59..2ae9b88 100644 --- a/.gitignore +++ b/.gitignore @@ -39,6 +39,7 @@ node_modules/ .next/ .turbo/ coverage/ +*.tgz *.tsbuildinfo playwright-report/ test-results/