-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
115 additions
and
0 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
TAG_NAME | ||
|
||
This tag was created automatically through the GH Actions | ||
"Publish on PyPI" workflow. |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
name: Publish on PyPI | ||
|
||
on: | ||
release: | ||
types: | ||
- published | ||
|
||
jobs: | ||
publish: | ||
runs-on: ubuntu-latest | ||
if: github.repository == 'osscar-org/jupyterlab-mol-visualizer' && startsWith(github.ref, 'refs/tags/v') | ||
|
||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@v2 | ||
|
||
- name: Set up Python 3.8 | ||
uses: actions/setup-python@v2 | ||
with: | ||
python-version: 3.8 | ||
|
||
- name: Install Python dependencies | ||
run: | | ||
python -m pip install --upgrade pip | ||
pip install -U setuptools | ||
pip install -U invoke | ||
pip install -U jupyter-packaging | ||
pip install -U jupyterlab | ||
- name: Install the node | ||
uses: actions/setup-node@v2 | ||
with: | ||
node-version: '14' | ||
- run: npm install | ||
|
||
- name: Update version | ||
run: invoke update-version --version="${GITHUB_REF#refs/tags/}" | ||
|
||
- name: Create new tag | ||
run: | | ||
git config --local user.email "[email protected]" | ||
git config --local user.name "Materials Cloud Team" | ||
git commit -m "Release ${GITHUB_REF#refs/tags/}" -a | ||
TAG_MSG=.github/static/release_tag_msg.txt | ||
sed -i "s|TAG_NAME|${GITHUB_REF#refs/tags/}|g" "${TAG_MSG}" | ||
git tag -af -F "${TAG_MSG}" ${GITHUB_REF#refs/tags/} | ||
- name: Push release commit and new tag | ||
uses: ad-m/github-push-action@master | ||
with: | ||
github_token: ${{ secrets.GITHUB_TOKEN }} | ||
force: true | ||
tags: true | ||
branch: develop | ||
|
||
- name: Build source distribution | ||
run: python ./setup.py sdist bdist_wheel | ||
|
||
- name: Publish package to PyPI | ||
uses: pypa/gh-action-pypi-publish@master | ||
with: | ||
user: __token__ | ||
password: ${{ secrets.PYPI_PASSWORD }} |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
from pathlib import Path | ||
import re | ||
import sys | ||
from typing import Tuple | ||
|
||
from invoke import task | ||
|
||
|
||
TOP_DIR = Path(__file__).parent.resolve() | ||
|
||
|
||
def update_file(filename: str, sub_line: Tuple[str, str], strip: str = None): | ||
"""Utility function for tasks to read, update, and write files""" | ||
with open(filename, "r") as handle: | ||
lines = [ | ||
re.sub(sub_line[0], sub_line[1], line.rstrip(strip)) for line in handle | ||
] | ||
|
||
with open(filename, "w") as handle: | ||
handle.write("\n".join(lines)) | ||
handle.write("\n") | ||
|
||
|
||
@task | ||
def update_version(_, version=""): | ||
"""Update package version using SemVer syntax.""" | ||
if version: | ||
if version.startswith("v"): | ||
version = version[1:] | ||
if re.match(r"[0-9]+(\.[0-9]+){2}.*", version) is None: | ||
sys.exit( | ||
f"Error: Passed version ({version}) does to match the SemVer format: " | ||
"Major.Minor.Patch(+ extras)." | ||
) | ||
else: | ||
sys.exit( | ||
"Please pass --version with a value that complies to the SemVer format: " | ||
"Major.Minor.Patch(+ extras)." | ||
) | ||
|
||
update_file( | ||
TOP_DIR.joinpath("package.json"), (r'"version":.*,', f'"version": "{version}",') | ||
) | ||
|
||
print(f"Bumped version to {version} !") |