Skip to content

Support emit custom message (#561) #406

Support emit custom message (#561)

Support emit custom message (#561) #406

Workflow file for this run

name: Release
on:
push:
branches:
- main
- master
jobs:
check:
name: Check versions
runs-on: ubuntu-latest
steps:
- name: Check out the repository
uses: actions/checkout@v3.3.0
- name: Get Python version
id: python-version
run: |
echo "::set-output name=version::$(cat python/imjoy_rpc/VERSION | jq -r '.version')"
- name: Get Javascript version
id: js-version
run: |
echo "::set-output name=version::$(cat javascript/package.json | jq -r '.version')"
- name: Compare versions
run: |
.github/check-versions.sh "${{ steps.python-version.outputs.version }}" "${{ steps.js-version.outputs.version }}"
release-python:
name: Release Python
needs: check
runs-on: ubuntu-latest
defaults:
run:
working-directory: python
steps:
- name: Check out the repository
uses: actions/checkout@v3.3.0
with:
fetch-depth: 2
- name: Set up Python
uses: actions/setup-python@v4.5.0
with:
python-version: "3.9"
- name: Upgrade pip
run: |
python -m pip install --upgrade pip
pip --version
- name: Install dependencies
run: |
pip install tox tox-gh-actions
pip install -r requirements_pypi.txt
- name: Test with tox
run: tox
- name: Check if there is a parent commit
id: check-parent-commit
run: |
echo "::set-output name=sha::$(git rev-parse --verify --quiet HEAD^)"
- name: Detect new version
id: check-version
if: steps.check-parent-commit.outputs.sha
uses: salsify/action-detect-and-tag-new-version@v2.0.3
with:
create-tag: false
version-command: |
bash -o pipefail -c "cat python/imjoy_rpc/VERSION | jq -r '.version'"
- name: Push tag
id: tag-version
if: steps.check-version.outputs.previous-version != steps.check-version.outputs.current-version
uses: mathieudutour/github-tag-action@v6.1
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
custom_tag: ${{ steps.check-version.outputs.current-version }}
- name: Build package
run: |
python setup.py sdist bdist_wheel
- name: Publish package on PyPI
if: steps.tag-version.outputs.new_tag
uses: pypa/gh-action-pypi-publish@v1.6.4
with:
user: __token__
password: "${{ secrets.PYPI_TOKEN }}"
packages_dir: python/dist/
- name: Publish the release notes
uses: release-drafter/release-drafter@v5.22.0
with:
publish: "${{ steps.tag-version.outputs.new_tag != '' }}"
tag: "${{ steps.tag-version.outputs.new_tag }}"
env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
release-js:
name: Release Javascript
needs: release-python
runs-on: ubuntu-latest
defaults:
run:
working-directory: javascript
steps:
- uses: actions/checkout@v3.3.0
with:
fetch-depth: 2
- name: Check if there is a parent commit
id: check-parent-commit
run: |
echo "::set-output name=sha::$(git rev-parse --verify --quiet HEAD^)"
- name: Detect new version
id: check-version
if: steps.check-parent-commit.outputs.sha
uses: salsify/action-detect-and-tag-new-version@v2.0.3
with:
create-tag: false
version-command: |
bash -o pipefail -c "cat javascript/package.json | jq -r '.version'"
- uses: actions/setup-node@v3.6.0
with:
node-version: 15.5.0
registry-url: "https://registry.npmjs.org"
- run: npm ci
- run: npm run check-format
- run: npm run test
- run: npm run build
- name: Publish package on NPM
if: steps.check-version.outputs.previous-version != steps.check-version.outputs.current-version
run: npm publish
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}