util functions for software life cycle enforcement on github
Project description
PDS utility function for github
Enforces the PDS engineering node software lifecycle:
- publish snapshot releases for python (
python-snapshot-release
) or maven (maven-snaphot-release
) projects - create requirements reports (
requirement-report
) - ping a repository, ie creates an empty commit & push e.g. to trigger github action (
git-ping
) - create build summaries from .gitmodule file (
summaries
)
These routines are called from github actions.
They are orchestrated around the pdsen-corral repository
Prerequisites
libxml2 is used to do publish a snapshot release of a maven project (maven-snaphot-release
). It needs to be deployed as follow:
Macos
brew install libxml2
cd ./venv/lib/python3.7/site-packages/ # chose the site package of the used python
ln -s /usr/local/Cellar/libxml2/2.9.10/lib/python3.7/site-packages/* .
Ubuntu
sudo apt-get update && sudo apt-get install libxml2-dev libxslt-dev python-dev
pip install lxml
deploy and run
Deploy:
pip install pds-gihub-util
Some environment variable need to be set (they are defined by default in github action but need to be set manually otherwise)
export GITHUB_WORKSPACE=<where the repository which we want to publish a snapshot is cloned>
export GITHUB_REPOSITORY=<full name of the repository which we want to publish for example NASA-PDS-Incubator/pds-app-registry>
Usage
Get command arguments for each of the available utilities using --help
flag. e.g.
maven-snapshot-release --help
python-snapshot-release --help
requirement-report --help
git-ping --help
summaries --help
milestones --help
milestones
Tool for managing Github milestones.
Example of creating milestones:
-
for a single repo
-
specified in a config file
-
prepended by a number
-
first due date is 2021-02-25
milestones --create --sprint_name_file conf/milestones_2021.yaml \ --prepend_number 3 --due_date 2021-02-25 \ --github_org NASA-PDS --github_repos pds-registry-common
Development
git clone ...
cd pds-github-util
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
Update the code
Test the code:
export GITHUB_TOKEN=<personal access token for github>
python setup.py test
Create package and publish it:
Set the version in setup.py
Tag the code
git tag <version>
git push origin --tags
The package will be published to pypi automatically though github action.
Manually publish the package
Create the package:
python setup.py sdist
Publish it as a github release.
Publish on pypi (you need a pypi account):
pip install twine
twine upload dist/*
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Hashes for pds_github_util-0.17.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 87d4bac89b1533695235e28360047b725b2d048dcf1d5097626f815075bdfce4 |
|
MD5 | 6719c86548aec2540887c4675d41069f |
|
BLAKE2b-256 | 0babf67a7f7a8bd1a848fde89861f8685de166020472288aa8b07f90fe1129c1 |