Skip to content

Release

Release #48

Workflow file for this run

name: Release
on:
release:
types: [published]
# Can be called manually
workflow_dispatch:
inputs:
release_tag:
description: 'Release tag'
default: 'latest'
type: string
checkout_ref:
description: 'Ref to checkout for doc index (default to current branch)'
default: ''
type: string
env:
DOCUMENTATION_CNAME: 'dpf.docs.pyansys.com'
MEILISEARCH_API_KEY: ${{ secrets.MEILISEARCH_API_KEY }}
MEILISEARCH_PUBLIC_API_KEY: ${{ secrets.MEILISEARCH_PUBLIC_API_KEY }}
jobs:
get_latest_tag:
name: "Get latest release version tag"
runs-on: ubuntu-latest
outputs:
version: ${{ steps.step1.outputs.version }}
steps:
- id: step1
name: "Get version tag"
shell: bash
run: |
get_latest_release() {
curl --silent "https://api.github.com/repos/$1/releases/latest" |
grep '"tag_name":' |
sed -E 's/.*"([^"]+)".*/\1/'
}
version=$(get_latest_release "ansys/pydpf-core")
echo $version
echo "version=$version" >> "$GITHUB_OUTPUT"
Publish_to_PyPI:
name: "Publish Release to PyPI"
runs-on: ubuntu-latest
needs: get_latest_tag
steps:
- name: "Download Release Assets"
uses: robinraju/release-downloader@v1.9
with:
tag: ${{ github.event.inputs.release_tag || needs.get_latest_tag.outputs.version }}
fileName: "*.whl"
tarBall: false
zipBall: false
out-file-path: "assets"
extract: false
token: ${{ secrets.GITHUB_TOKEN }}
- name: "Upload to Public PyPI"
run: |
pip install twine
twine upload --skip-existing assets/*
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }}
upload_docs_release:
name: "Upload stable documentation"
needs: [Publish_to_PyPI]
runs-on: ubuntu-latest
steps:
- name: "Download Release Asset - HTML"
uses: dsaltares/fetch-gh-release-asset@1.1.0
with:
file: HTML-doc-ansys-dpf-core.zip
token: ${{ secrets.GITHUB_TOKEN }}
version: ${{ github.event.inputs.release_tag && format('tags/{0}', github.event.inputs.release_tag) || format('tags/{0}', needs.get_latest_tag.outputs.version) }}
- name: "List downloaded assets"
shell: bash
run: |
ls
- name: "Upload artifact"
uses: actions/upload-artifact@v4
with:
name: HTML-doc-ansys-dpf-core.zip
path: HTML-doc-ansys-dpf-core.zip
- name: "Deploy the stable documentation"
uses: ansys/actions/doc-deploy-stable@v5
with:
cname: ${{ env.DOCUMENTATION_CNAME }}
token: ${{ secrets.GITHUB_TOKEN }}
doc-artifact-name: HTML-doc-ansys-dpf-core.zip
decompress-artifact: true
doc-index-stable:
name: "Deploy stable docs index"
runs-on: ubuntu-latest
needs: upload_docs_release
steps:
- name: "Install Git and clone project"
uses: actions/checkout@v4
with:
ref: ${{ github.event.inputs.checkout_ref || '' }}
- name: "Install the package requirements"
run: |
python3 -m venv .venv
.venv/bin/python -m pip install -e .
- name: "Get the version to PyMeilisearch"
run: |
VERSION=$(.venv/bin/python -c "from ansys.dpf.core import __version__; print('.'.join(__version__.split('.')[:2]))")
VERSION_MEILI=$(.venv/bin/python -c "from ansys.dpf.core import __version__; print('-'.join(__version__.split('.')[:2]))")
echo "Calculated VERSION: $VERSION"
echo "Calculated VERSION_MEILI: $VERSION_MEILI"
echo "VERSION=$VERSION" >> $GITHUB_ENV
echo "VERSION_MEILI=$VERSION_MEILI" >> $GITHUB_ENV
- name: "Deploy the latest documentation index"
uses: ansys/actions/doc-deploy-index@v5
with:
cname: ${{ env.DOCUMENTATION_CNAME }}/version/${{ env.VERSION }}
index-name: pydpf-core-v${{ env.VERSION_MEILI }}
host-url: ${{ vars.MEILISEARCH_HOST_URL }}
api-key: ${{ env.MEILISEARCH_API_KEY }}
doc-artifact-name: HTML-doc-ansys-dpf-core.zip
decompress-artifact: true
update_ansys_lab_examples:
uses: ./.github/workflows/ansys_lab.yml
needs: get_latest_tag
with:
version: ${{ github.event.inputs.release_tag || needs.get_latest_tag.outputs.version }}
secrets: inherit