Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build and Release Node.js/Python Package | |
on: | |
workflow_dispatch: | |
release: | |
types: [ created ] | |
jobs: | |
update-version: | |
runs-on: ubuntu-latest | |
if: startsWith(github.ref, 'refs/tags/') | |
steps: | |
- name: checkout | |
uses: actions/checkout@v4 | |
- name: Update package.json version | |
run: | | |
TAG_NAME=$(echo ${{github.ref_name}}) | |
jq --arg tag "$TAG_NAME" '.version = $tag' package.json > tmp.$$.json && mv tmp.$$.json package.json | |
- name: Update setup.py version | |
run: | | |
TAG_NAME=$(echo ${{github.ref_name}}) | |
sed -i "s/version=.*,/version='$TAG_NAME',/" setup.py | |
- name: Commit and push changes | |
run: | | |
TAG_NAME=$(echo ${{github.ref_name}}) | |
git config --global user.name 'github-actions[bot]' | |
git config --global user.email 'github-actions[bot]@users.noreply.github.com' | |
git add package.json | |
git add package-lock.json | |
git add setup.py | |
git commit -m "Update package.json and setup.py version to $TAG_NAME" | |
git tag -f $TAG_NAME | |
git push --force origin $TAG_NAME | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
build-npm-package: | |
needs: update-version | |
runs-on: ubuntu-latest | |
steps: | |
- name: checkout | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.ref }} | |
- name: setup npm | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 18 | |
registry-url: https://registry.npmjs.org/ | |
- name: npm ci | |
run: npm ci | |
- name: publish | |
run: npm publish --access=public | |
env: | |
NODE_AUTH_TOKEN: ${{secrets.npm_token}} | |
build-python-package: | |
needs: update-version | |
runs-on: ubuntu-latest | |
steps: | |
- name: checkout | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.ref }} | |
- name: build release distributions | |
run: | | |
pip install setuptools | |
python setup.py sdist | |
- name: upload windows dists | |
uses: actions/upload-artifact@v4 | |
with: | |
name: release-dists | |
path: dist/ | |
- name: Publish release distributions to PyPI | |
uses: pypa/gh-action-pypi-publish@release/v1 | |
permissions: | |
id-token: write | |
environment: | |
name: python-release-env | |
url: https://github.com | |