82 lines
2.5 KiB
YAML
82 lines
2.5 KiB
YAML
name: Publish to Guardrails Hub
|
|
description: Re-Usable action to publish a Validator to Guardrails PyPi
|
|
inputs:
|
|
validator_id:
|
|
description: 'Validator ID ex. guardrails/detect_pii'
|
|
required: true
|
|
guardrails_token:
|
|
description: 'Guardrails Token'
|
|
required: true
|
|
pypi_repository_url:
|
|
description: 'PyPi Repository URL'
|
|
required: false
|
|
default: 'https://pypi.guardrailsai.com'
|
|
package_directory:
|
|
description: 'Package Directory "validator" or "some_parent_folder/package"'
|
|
required: false
|
|
default: 'validator'
|
|
|
|
runs:
|
|
using: "composite"
|
|
steps:
|
|
- name: Checkout "Validator" Repository
|
|
uses: actions/checkout@v3
|
|
with:
|
|
path: ${{ inputs.package_directory }}
|
|
|
|
- name: Checkout "Action" repository
|
|
uses: actions/checkout@v3
|
|
with:
|
|
repository: guardrails-ai/guardrails
|
|
ref: main
|
|
path: shared-ci-scripts
|
|
sparse-checkout: |
|
|
.github
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v4
|
|
with:
|
|
python-version: '3.10'
|
|
|
|
- name: Install Twine & Build
|
|
shell: bash
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
pip install twine build toml
|
|
|
|
- name: Create .pypirc
|
|
shell: bash
|
|
run: |
|
|
touch ~/.pypirc
|
|
echo "[distutils]" >> ~/.pypirc
|
|
echo "index-servers =" >> ~/.pypirc
|
|
echo " private-repository" >> ~/.pypirc
|
|
echo "" >> ~/.pypirc
|
|
echo "[private-repository]" >> ~/.pypirc
|
|
echo "repository = ${{ inputs.pypi_repository_url }}" >> ~/.pypirc
|
|
echo "username = __token__" >> ~/.pypirc
|
|
echo "password = ${{ inputs.guardrails_token }}" >> ~/.pypirc
|
|
|
|
- name: Move CI Scripts to Validator
|
|
shell: bash
|
|
run: |
|
|
mv shared-ci-scripts/.github/actions/validator_pypi_publish/*.py ./${{ inputs.package_directory }}
|
|
|
|
- name: Rename Package
|
|
shell: bash
|
|
run: |
|
|
cd ${{ inputs.package_directory }}
|
|
CONCATANATED_NAME=$(python concat_name.py ${{ inputs.validator_id }})
|
|
NEW_PEP_PACKAGE_NAME=$(python package_name_normalization.py $CONCATANATED_NAME)
|
|
VALIDATOR_FOLDER_NAME=$(echo $NEW_PEP_PACKAGE_NAME | tr - _)
|
|
mv ./${{ inputs.package_directory }} ./$VALIDATOR_FOLDER_NAME
|
|
python add_build_prefix.py ./pyproject.toml $NEW_PEP_PACKAGE_NAME $VALIDATOR_FOLDER_NAME
|
|
|
|
- name: Build & Upload
|
|
shell: bash
|
|
run: |
|
|
cd ${{ inputs.package_directory }}
|
|
python -m build
|
|
twine upload dist/* -u __token__ -p ${{ inputs.guardrails_token }} -r private-repository
|
|
|