Spaces:
Running
Running
name: Publish to Test PyPI | |
on: | |
push: | |
tags: | |
- 'test-v*' | |
branches: | |
- 'f/pypi_release' | |
jobs: | |
deploy_testpypi: | |
#if: true | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 # Required for full commit history check | |
- name: Verify tag is on dev branch | |
run: | | |
TAG_NAME=${GITHUB_REF#refs/tags/} | |
COMMIT=$(git rev-parse $TAG_NAME) | |
if ! git branch --contains $COMMIT | grep -qw dev; then | |
echo "::error::Tag $TAG_NAME must be created from dev branch" | |
exit 1 | |
fi | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.x' | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install build twine | |
- name: Build and publish | |
env: | |
#TWINE_USERNAME: ${{ secrets.TEST_PYPI_USERNAME }} | |
TWINE_USERNAME: __token__ | |
TWINE_PASSWORD: ${{ secrets.TEST_PYPI_PASSWORD }} | |
#ACTIONS_STEP_DEBUG: true | |
run: | | |
# echo "TWINE_PASSWORD first 5 chars: ${TWINE_PASSWORD:0:184}" | |
# echo "TWINE_PASSWORD length: ${#TWINE_PASSWORD}" | |
python -m build | |
twine upload --verbose --repository-url https://test.pypi.org/legacy/ dist/* | |
test-colab: | |
needs: deploy_testpypi | |
runs-on: ubuntu-latest | |
#a Public "Colab-like" Image | |
container: | |
image: jupyter/minimal-notebook:latest | |
options: --user root # Run as root to avoid permission issues | |
permissions: | |
contents: write | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
sparse-checkout: | | |
tests/* | |
examples/data_factory_release_check.ipynb | |
sparse-checkout-cone-mode: false | |
- name: Update system packages | |
run: | | |
apt-get update | |
apt-get install -y libssl3 # Removed sudo since we're running as root | |
- name: Print Python and Jupyter versions | |
run: | | |
python --version | |
pip list | grep -E 'jupyter|ipykernel|nbconvert|notebook' | |
# Authenticate to GCP | |
# - name: Authenticate to GCP | |
# uses: google-github-actions/auth@v1 | |
# with: | |
# credentials_json: ${{ secrets.GCP_SA_KEY }} | |
# # Configure Docker to use GCR credentials | |
# - name: Configure Docker for GCR | |
# uses: google-github-actions/docker-auth@v1 | |
# # Now you can pull the image | |
# - name: Use Colab base image | |
# run: docker pull gcr.io/colab-images/base:latest | |
# --no-prompt --no-input \ suppress the output | |
- name: Run Colab-style tests | |
run: | | |
if ! jupyter nbconvert --execute --to notebook --inplace \ | |
--ExecutePreprocessor.kernel_name=python3 \ | |
--ExecutePreprocessor.timeout=120 \ | |
--no-prompt --no-input \ | |
--stdout \ | |
examples/data_factory_release_check.ipynb; then | |
echo "::error::Notebook execution failed" | |
exit 1 | |
fi | |
echo "Notebook executed successfully. Summary:" && \ | |
jupyter nbconvert --to markdown --stdout \ | |
examples/data_factory_release_check.ipynb | \ | |
grep -E '^#|^##' || true | |
# Add tag deletion step | |
- name: Delete triggering tag after successful test | |
if: startsWith(github.ref, 'refs/tags/test-v') | |
run: | | |
gh api -X DELETE /repos/$GITHUB_REPOSITORY/git/refs/tags/${GITHUB_REF#refs/tags/} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |